silahkan lihat di sini contoh penggunaannya, sekarang mari kita bahas dasar-dasar PL/SQL. Silahkan lihat block PL/SQL yang telah kita bahas tersebut:
DECLARE
V_rcg_min NUMBER;
v_rcg_max number;
V_iterasi NUMBER;
BEGIN
V_rcg_min:= &1;
v_rcg_max:= &2;
V_iterasi:=V_rcg_min;
WHILE V_iterasi <= v_rcg_max LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
END LOOP;
dbms_output.put_line(’Deleting sucess’);
dbms_output.put_line(’Min RCG_ID ‘||V_rcg_min);
dbms_output.put_line(’Max RCG_ID ‘||V_rcg_max);
EXCEPTION
WHEN OTHERS THEN dbms_output.put_line(’error here’);
END;
/
Struktur pokok PL/SQL adalah sebagai berikut
DECLARE
BEGIN
END;
/
DECLARE
Berisi deklarasi variabel. Adapun isi dari deklarasi variabel adalah nama variable, tipe data, constraint, dan default value. Setiap satu deklarasi diakhiri dengan tanda ; (titik koma). Contoh:
- Yang wajib ada : nama variabel dan tipe data
v_rcg_min NUMBER;
- Dengan menambahkan nilai default
v_jam_kerja INTEGER DEFAULT 40;
v_jam_kerja INTEGER := 0; - Dengan menambahkan constraint “not null” dan nilai default
v_acc_id INTEGER(4) NOT NULL := 9999;
- Deklarasi konstanta
v_jumlah_hari_pertahun CONSTANT INTEGER := 366;
v_wni CONSTANT BOOLEAN := FALSE; - Memakai tipe data dari suatu kolom di tabel (contoh, tabel: tbl emp, kolom: empid)
v_empid tbl_emp.empid%TYPE;
- Contoh lain, silahkan lihat referensi
Bagian Utama
Bagian Utama ada di antara BEGIN dan END. Setelah END, tambahkan tanda ; (titik koma). Agar block PL/SQL bisa dieksekusi, tambahkan baris baru di bawah END dan beri tanda / (slash atau garis miring).
Bagian utama berisi operasi (pekerjaan) yang kita lakukan. Contoh block PL/SQL di atas berisi:
– Memberi nilai variable
– Operasi SQL (delete dan commit)
– Operasi aritmatika (penjumlahan )
– Control struktur ( LOOP dan WHILE)
– EXCEPTION (error handler)
Memberi nilai variabel
Cara memberi nilai pada variabel adalah memakai := (titik dua dan sama dengan). Contoh:
v_rcg_min:= &1;
v_rcg_max:= 100;
v_iterasi:=v_rcg_min;
Kita juga bisa memberi nilai ke variabel melalui SQL command. Lihat contoh berikut ini, nilai untuk variabel v_job adalah hasil dari “select job from emp where EMPID=10″
DECLARE
v_job VARCHAR2(9);
BEGIN
select job into v_job from emp where EMPID=10;
dbms_output.put_line(v_job);
END;
/
Operasi SQL
Hampir semua perintah SQL bisa dijalankan di sini. Iya dong, khan sesuai dengan namanya, di mana PL/SQL adalah pengembangan dari SQL.
Control Struktur
Macam-macam control structure adalah:
– Testing Conditions: IF dan CASE
– Controlling Loop Iterations: LOOP dan EXIT
– Sequential Control: GOTO dan NULL
Menggunakan LOOP
Contoh yang telah saya pakai di atas adalah WHILE …LOOP
WHILE V_iterasi <= v_rcg_max LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
END LOOP;
Dengan hasil yang sama, kita bisa menggunakan LOOP … EXIT WHEN
LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
EXIT WHEN V_iterasi > v_rcg_max;
END LOOP;
Bisa juga dengan memakai LOOP dan di dalamnya ada IF … THEN
LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
IF (V_iterasi > v_rcg_max) THEN
exit;
END IF;
END LOOP;
Contoh Menggunakan IF … THEN
IF (v_gaji > v_umr) THEN
v_bonus:=v_gaji*2;
END IF;
IF (v_gaji < v_umr) THEN
v_bonus:=v_gaji*4;
ELSIF (v_gaji = v_umr) THEN
v_bonus:=v_gaji*3;
ELSE
v_bonus:=v_gaji*2;
END IF;
Contoh Mengguakan CASE
v_nilai := 'B';
CASE v_nilai
WHEN ‘A’ THEN v_predikat := ‘Excellent’;
WHEN ‘B’ THEN v_predikat := ‘Very Good’;
WHEN ‘C’ THEN v_predikat := ‘Good’;
WHEN ‘D’ THEN v_predikat := ‘Fair’;
WHEN ‘F’ THEN v_predikat := ‘Poor’;
ELSE v_predikat := ‘Nothing’;
END CASE;
Referensi
blog pak rohmat
Oracle® Database PL/SQL User’s Guide and Reference 10g Release 2 (10.2)
Tinggalkan komentar