PL/SQL adalah salah satu fasilitas yang ada dalam Oracle. PL (Procedural Language) sedangkan SQL (Structure Query Language). PL/SQL pertama kali diperkenalkan tahun 1991 dengan Oracle 6.0. Jadi sudah cukup lama failitas ini berada di Oracle. PL/SQL merupakan turunan bahasa ADA, suatu bahasa program yang tingkat tinggi. Konsep dari PL/SQL blok menyerupai konsep dari struktur blok di bahasa ADA.
BLOK PL/SQL terdiri dari:
1. Declaration/Deklarasi bagian: Bagian ini mulai dengan kata kunci DECLARE dan berisi deklarasi dari variabel, tetap, cursors, dan lokal subprograms. Bagian ini adalah opsional untuk suatu blok.
2. Executable: Bagian ini mulai dengan BEGIN terdiri dari logika prosedural dan SQL statemen dan diakhiri dengan END.
3. EXCEPTION unnuk pengananan error server. Walaupun bagian ini adalah opsional, direkomendasikan untuk diterapkan.
Struktur Blok PL/SQL di Oracle dapat dilihat dibawah ini
DECLARE
Variabel tipe data;
Konstanta constant tipe data := nilai;
BEGIN
Prosedural dan SQL berada disini
EXCEPTION
WHEN nama eksepsi THEN
Pernyatan untuk mengatasi error;
END;
1. Contoh skrip PL/SQL
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 a int;
3 BEGIN
4 a:=1;
5 DBMS_OUTPUT.PUT_LINE(TO_CHAR(a));
6 END;
7 /
Hasilnya
1
PL/SQL procedure successfully completed.
2. Contoh skrip PL/SQL dengan penanganan error
SQL> DECLARE
2 a int;
3 BEGIN
4 a:=’hello word;
5 DBMS_OUTPUT.PUT_LINE(TO_CHAR(a));
6 END;
7 /
Hasilnya
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 4
Sudah dapat diduga bahwa kesalahan pengisian data a bertipe int diisi dengan hello word yang bertipe teks.
Mari kita perbaiki skripnya dan dengan memberikan EXCEPTION
SQL> DECLARE
2 a int;
3 BEGIN
4 a:=’hello word;
5 DBMS_OUTPUT.PUT_LINE(TO_CHAR(a));
6 EXCEPTION
7 WHEN VALUE_ERROR THEN
8 DBMS_OUTPUT.PUT_LINE(’maaf kesalahan terjadi pada pengisian variabel a’);
9 END;
10 /
Hasilnya
maaf kesalahan terjadi pada pengisian variabel a
PL/SQL procedure successfully completed.