contoh procedure pada ORACLE DATA BASE
komentarsaya 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.com © 2010 Kreatifroom - Best View with All Major Browser except Internet Explorer


