Procedur
Made by:
1. Implicit Cursor
2. Explicit Cursor
2. Open
Tahapan ini digunakan untuk membuka atau mengaktifkan
sebuah cursor. Sintaknya adalah:
OPEN cursor_name;
declare
a buku.penulis_buku%type;
b buku.nama_buku%type;
c buku.penulis_buku%type;
begin
c:='Adam Haniif';
select penulis_buku, nama_buku
into a, b
from buku
where penulis_buku = c;
dbms_output.put_line('Nama Penulis : '||a||' Judul Buku '||b);
exception
when no_data_found then
dbms_output.put_line('maaf nama penulis '||c||' tidak ditemukan');
when too_many_rows then
dbms_output.put_line('maaf nama penulis '||c||' lebih dari 1 Buku');
end;
Contoh
Contoh
IMPLICIT CURSOR
DECLARE
Book VARCHAR(100);
BEGIN
UPDATE Buku
SET nama_buku = 'Kalkulus'
WHERE id_buku = 'b02';
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('Tidak ada record yang berhasil di update');
ELSIF SQL%FOUND THEN
Book := SQL%ROWCOUNT;
DBMS_OUTPUT.PUT_LINE('Ada ' || Book || ' record yang telah berhasil di
update');
END IF;
END;
Contoh
EXPLICIT CURSOR
declare
x buku.id_buku%type;
y buku.nama_buku%type;
z buku.Penulis_buku%type;
cursor cur1 is
select id_buku, nama_buku, Penulis_buku from BUKU;
begin
open cur1;
loop
fetch cur1 into x, y, z;
exit when cur1%notfound;
dbms_output.put_line('ID buku : '||x);
dbms_output.put_line('Nama Buku : '||y);
dbms_output.put_line('Penulis_buku : '||z);
end loop;
close cur1;
end;
/
Contoh
STORED PROCEDURE
Definisi
3 IS | AS
4 [deklarasi]
5 BEGIN
6 [deklarasi]
7 [EXCEPTION]
8 [deklarasi_exception]
END [nama_procedure]
9
;
Penjelasan sintak:
•Tanda yang ada di dalam kurung siku "[ ]" merupakan bersifat opsional.
•Paramater yang digunakan untuk membuat Procedure ada 3 macam, yaitu:
1.IN - merupakan parameter yang nilainya dapat digunakan (ditangkap) pada bagian badan
2.procedure atau function.
3.Anda tidak harus menyertakan IN pada paramater, karena secara default Oracle akan membuatkannya.
4.OUT - merupakan parameter yang nilainya dapat digunakan oleh si pemanggil procedure atau function.
IN OUT - merupakan parameter yang nilainya digunakan oleh procedure atau function yang kemudian
diproses, dan selanjutnya dikembalikan kepada si pemanggil procedure atau function
contoh
create or replace procedure safesr
is
adamhs varchar(100);
begin
select 'Adam Haniif Sabarto' INTO adamhs
from dual;
DBMS_OUTPUT.PUT_LINE(adamhs);
end;
contoh
create or replace procedure math(bil1 in number, bil2 in number)
is
perkalian varchar(10);
begin
select bil1 * bil2 INTO perkalian
from dual;
DBMS_OUTPUT.PUT_LINE('Hasil Perkalian '||perkalian);
end math;
/