penggunaan pl sql
DESCRIPTION
Penggunaan PL SQL pada oracle dbTRANSCRIPT
MODUL X
Percabangan
Percabangan adalah suatu kontrol untuk pengecekan yang dilakukan sebelum statemen-statemen dalam sebuah blok PL/SQL dieksekusi.Statement yang dapat digunakan untuk percabangan adalah IF dan CASE, dengan syntax sebagai berikut
IF kondisi THEN Statemen;
END IF
CASE (ekspresi)
WHEN nilai_1 THEN Statemen_1;
WHEN nilai_2 THEN Statemen_2;
WHEN nilai_n THEN Statemen_n
[ELSE Statemen_lain;]
END CASE;
Perulangan
Pengulangan adalah suatu blok yang memperbolehkan statemen-statemen dalam sebuah blok PL/SQL diulang-ulang. Tiga buah jenis struktur pengulangan dalam Oracle, yaitu simple loop, For dan While. Sintak masing-masing struktur pengulangan tersebut adalah:
LOOP
Statement;
END LOOP;
FOR variabel IN indeks_awal .. indeks_akhir LOOP
Statement;
..
END LOOP
WHILE kondisi LOOP
Statemen;
..
END LOOP;
Tipe dataAdalah pengelompokan data berdasarkan isi dan sifatnya
1. VariabelDECLARE merupakan perintah yang digunakan untuk memberitahukan compiler oracle atau dengan katalain berarti memberitahu oracle bahwa anda mendeklarasikan sebuah/ beberapa variable atau konstanta. ContohDECLARE X integer; Namavarchar(40); NIK char(8);2.Konstantakonstanta berguna untuk menyimpan suatu nilai dalam memori computer tetapi nilai tidak dapat diubah
DECLARE Phi constant real :=3.14;jari2 constant integer:=100;Contoh Kode Program dengan PL/SQL sebagai implementasi dari materi variabel dan konstanta :1. declare2. a integer;3. b number;4. begin5. a:=2*3;6. b:=100+3.14;7. dbms_output.put_line(to_char(a));8. end;Eksepsi (exception) merupakan jenis-jenis error yang menyebabkan terhentinya program secara tidak normal
1Pre-defined Exception
Adalah sebuah eksepsi yang telah didefinisikan atau sudah tersedia dalam Oracle, sehingga dapat langsung menggunakan tanpa harus membuatnya terlebih dahulu
Contoh 1, Tanpa blok eksepsi
SET SERVEROUTPUT ON
DECLARE
X INTEGER;
Y NUMBER;
BEGIN
X := 0;
Y := 1 / X;
DBMS_OUTPUT.PUT_LINE(Nilai Y = || TO_CHAR(Y));
END;
/
Hasil yang muncul dilayar:
ORA-01476 : divisior is equal to zero
Contoh 1, Dengan blok eksepsi
SET SERVEROUTPUT ON
DECLARE
X INTEGER;
Y NUMBER;
BEGIN
X := 0;
Y := 1 / X;
DBMS_OUTPUT.PUT_LINE(Nilai Y = || TO_CHAR(Y));
EXCEPTION
WHEN ZERO_DEVIDE THEN
DBMS_OUTPUT.PUT_LINE(Terjadi kesalahan karena terdapat || pembagian dengan 0 (NOL) );
END;
/
2User-defined Exception
Untuk membuat sebuah eksepsi, diperlukan :
Variabel bertipe EXCEPTION
Dihubungkan dengan tipe PRAGMA EXCEPTION_INIT
Kode error harus negatif (-)
Bentuk Umum :
DECLARE
nama_eksepsi EXCEPTION;
PRAGMA EXCEPTION_INIT (nama_eksepsi, kode_error);
Contoh tanpa eksepsi
SET SERVEROUTPUT ON
DECLARE
X ROWID;
BEGIN
SELECT ROWID INTO X FROM ALL_VIEWS;
END;
/
Hasil yang tampil dilayar :
ORA-01445: Cannot select ROWID from view of more than one tableContoh dengan eksepsi
SET SERVEROUTPUT ON
DECLARE
eksepsiku EXCEPTION;
PRAGMA EXCEPTION_INIT(eksepsiku, -10445);
X ROWID;
BEGIN
SELECT ROWID INTO X FROM ALL_VIEWS;
EXCEPTION
WHEN eksepsiku THEN
DBMS_OUTPUT.PUT_LINE(KESALAHAN : Tidak dapat ||
menampilkan ROWID dari beberapa tabel atau view);
END;
/
PL/SQLadalah kepanjangan dariPROCEDURAL LANGUAGE/STRUCTURE QUERY LANGUAGE yang mempunyai definisi : suatu blok yang berisi skrip-skrip bahasa procedural
BEGIN
DBMS_OUTPUT.PUT_LINE(BelajarOracle);
END;
PAGE 49