contoh procedure pada ORACLE DATA BASE

  komentar

saya jelaskan dahulu sebelumnya bahwa dalam pemrograman sistem manajemen basis data blok PL/SQL terbagi menjadi dua yaitu anonymouse (tidak memiliki nama) dan nymouse (memiliki nama) dan saya akan persempit pembahasan ini pada blok PL/SQL nymouse .blok PL/SQL nymouse sendiri tebagi lagi menjadi tiga yaitu prosedure, function dan terakhir adalah trigger. disini saya memberikan beberapa contoh dari salah satu dari tiga Blok PL/SQL  yaitu procedure berikut adalah contoh-contohnya :

 

catatan :

procedure dibawah  baru bisa berjalan jika tabel yang diperlukan sudah tersedia pada ORACLE yang anda gunakan.prosedur di bawah mengambil contoh study kasus pada sebuah laundry .

saya akan memberikan contoh untuk mebuat sebuah tabel pada ORACLE anda :

CREATE TABLE  "PAKET_CUCI"
   (    "ID_PAKET_CUCI" NUMBER NOT NULL ENABLE,
    "NAMA_PAKET" VARCHAR2(20),
    "TARIF" NUMBER,
    "LAMA_PENGERJAAN" VARCHAR2(20) NOT NULL ENABLE,
     CONSTRAINT "PK_ID" PRIMARY KEY ("ID_PAKET_CUCI") ENABLE
   )
/

 

create or replace procedure tmplPel2(id in number)
is
 x number;
 y number;
 no number :=1;
 vno number :=1;
begin
  for cur IN
   (select nama, total_bayar from
    pelanggan join ttl_byr
    using (id_pelanggan)
    where id_pelanggan = id)
  loop
   dbms_output.put(no||'.'||cur.nama||', total harga : Rp.'||cur.total_bayar);
   dbms_output.new_line;
   no := no+1;
  end loop;
  dbms_output.new_line;
  dbms_output.put_line('Total harga tsb berdasarkan layanan cuci yang dia pesan (sesuai urutan) :');
  for cur in
  (select nama_layanan from
   layanan join transaksi_simpan
   using (id_layanan,id_barang)
   where id_pelanggan = id)
  loop
   dbms_output.put(vno||'.'||cur.nama_layanan);
   dbms_output.new_line;
   vno := vno+1;
  end loop;
  dbms_output.new_line;
  select bnykLayanan(id) into y from dual;
  dbms_output.put_line('Pelanggan ini telah melakukan '||y||'X transaksi');
  dbms_output.put('tagihan yang harus dibayar : Rp.');
  select ttlbyr(id) into x from dual;
  dbms_output.put_line(x);
end;
/

---------------------------------------------------------------------------------------------

create or replace procedure tampil(id in number)
is
 vnama varchar2(50);
 ket number;
 vcuci varchar2(50);
 vtotal number;
 y number;
begin
 select bnykLayanan(id) into y from dual;
 if(y=1) then
  tmplPel(id,vnama,ket,vcuci,vtotal);
  dbms_output.put_line('Nama                       : '||vnama);
  dbms_output.put_line('Melakukan                  : '||ket||'X transaksi');
  dbms_output.put_line('Layanan yang dipesan       : '||vcuci);
  dbms_output.put_line('Tagihan yang harus dibayar : Rp.'||vtotal);
 else
  tmplPel2(id);
 end if;
end;
/

----------------------------------------------------------------------------------------------------

create or replace procedure getNmaAmbil(lm in number)
is
 no number := 1;
begin
 for cur IN
 (select nama, alamat, nmr_tlp
  from pelanggan p, transaksi_ambil ta, transaksi_simpan ts
  where p.id_pelanggan=ta.id_pelanggan and
  ta.id_pelanggan=ts.id_pelanggan and
  round((months_between(ts.tanggal_ambil,ts.tanggal_simpan))*30) > lm;
  )
 loop
  dbms_output.put(no||'.'||cur.nama||' alamat :' ||cur.alamat|| 'nomor tlp:' ||cur.nmr_tlp);
  dbms_output.new_line;
  no := no+1;
end loop;
end;
/

 

 

semoga bermanfaat

 







Ripiu comments powered by Disqus



Ripiu.com © 2010 Kreatifroom - Best View with All Major Browser except Internet Explorer