Selasa, 10 Juli 2018

PL/SQL Oracle



PL/SQL atau Procedural Language/Structure Query Language adalah sebuah bahasa yang menggabukan kekuatan dan fleksibilitas dari SQL.

Karakteristik PL/SQL

1. User friendly.
2. Bahasa standard dan portable dalam pengembangan oracle.
3. Merupakan bahasa bawaan dari oracle yang berarti PL/SQL dapat dieksekusi di host maupun di client
4. Integritas yang tinggi.

Struktur Blok PL/SQL
DECLARE
   Bagian Declarasi
BEGIN
  Bagian eksekusi
EXCEPTION
   Bagian exception
END;
/
set serveroutput on;    /* Perintah di sqlplus untuk mengaktifkan konsol output sebelum kita membuat perinta pl/sql */

/* contoh dasar Hello World di PL/SQL */
BEGIN
dbms_output.put_line('Hello World');
END;
/
/* pembuatan variable dengan type data di PL/SQL */
DECLARE
v_jml_beri number(2,0) not null :=12;
v_name_depan varchar2(15) := 'Tono';
v_nim char(9) := '113010000';
Today date := sysdate;
v_phi number(1,0) not null :=3;
BEGIN
dbms_output.put_line(TO_CHAR(v_jml_beri));
dbms_output.put_line(TO_CHAR(v_name_depan));
dbms_output.put_line(v_nim);
dbms_output.put_line(TO_CHAR(Today));
dbms_output.put_line(TO_CHAR(v_phi));
END;
/
/* Array di PL/SQL */
DECLARE
TYPE table_nomor IS TABLE OF number INDEX BY BINARY_INTEGER;
A table_nomor;
BEGIN
A(1) := 10;
A(2) := 20;
A(3) := 30;
dbms_output.put_line('Nilai elemen ke-1'||' = '||to_char(A(1)));
dbms_output.put_line('Nilai elemen ke-2'||' = '||to_char(A(2)));
dbms_output.put_line('Nilai elemen ke-3'||' = '||to_char(A(3)));
END;
/
/* Inputan dan condisonal IF ELSE di PL/SQL */
DECLARE
equal Exception;
v_nilai1 number := '&inputan1';
v_nilai2 number := '&inputan2';
BEGIN
if v_nilai1 = v_nilai2 then
raise equal;
elsif v_nilai1 < v_nilai2 then
dbms_output.put_line(v_nilai1||' Lebih kecil dari '||v_nilai2);
else
dbms_output.put_line(v_nilai1||' Lebih besar dari '||v_nilai2);
end if;
exception
when equal then
dbms_output.put_line(' Nilainya sama ');
END;
/
/* Loop di PL/SQL */
DECLARE
V_counter number := 1;
BEGIN
LOOP
dbms_output.put_line(V_counter);
V_counter := V_counter +1;
IF V_counter > 10 THEN
EXIT;
END IF;
END LOOP;
END;
/
/* While di PL/SQL*/
DECLARE
TYPE tablex IS TABLE OF varchar2(10) INDEX BY BINARY_INTEGER;
Data tablex;
vNoUrut number:=1;
BEGIN
WHILE vNoUrut <= 10 LOOP
Data(vNoUrut) := 'data ke-' || to_char(vNoUrut);
dbms_output.put_line(Data(vNoUrut));
vNoUrut:= vNoUrut+1;
end loop;
end;
/
/* FOR di PL/SQL */
DECLARE
TYPE tablex IS TABLE OF varchar2(10) INDEX BY BINARY_INTEGER;
Data tablex;
vNoUrut number;
BEGIN
FOR vNoUrut IN 1..10
LOOP
Data(vNoUrut) := 'data ke-' || to_char(vNoUrut);
dbms_output.put_line(Data(vNoUrut));
end loop;
end;
/
/* GOTO di PL/SQL*/
BEGIN
GOTO second_output;
dbms_output.put_line('This line will never execute.');
<<second_output>>
dbms_output.put_line('We are here!');
end;
/
Sekian Terimakasih :)
Load disqus comments

0 komentar