Procedure dalah sebuah blok PL/SQL yang
dapat berdiri sendiri serta dikompilasi untuk selanjutnya masuk ke dalam skema
database.Nama procedure yang dibuat kemudian menjadi objek dengan tipe
procedure. Procedure akan dieksekusi pada saat pemanggilan setelah sebelumnya
dibuat terlebih dahulu.
Bentuk umum :
CREATE OR REPLACE PROCEDURE
nama_procedure
(parameter_1 tipe_data, … ) AS
variabel_1 tipe_data;
…
BEGIN
statemen_1;
…
END;
CREATE OR REPLACE PROCEDURE
nama_procedure
(parameter_1 tipe_data, … ) AS
variabel_1 tipe_data;
…
BEGIN
statemen_1;
…
END;
CREATE
digunakan untuk membuat procedure baru
REPLACE digunakan untuk mengganti isi procedure yang telah dibuat sebelumnya
Parameter dan variable/konstanta bersifat opsional
Bentuk umum perintah untuk mengeksekusi sebuah procedure :
EXECUTE nm_procedure(paremeter_1,…);
REPLACE digunakan untuk mengganti isi procedure yang telah dibuat sebelumnya
Parameter dan variable/konstanta bersifat opsional
Bentuk umum perintah untuk mengeksekusi sebuah procedure :
EXECUTE nm_procedure(paremeter_1,…);
·
Procedure Tanpa
Parameter.
SET
SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE hitung_luas_segitiga AS
alas NUMBER(5);
tinggi NUMBER(5);
luas NUMBER(10);
BEGIN
alas := 3;
tinggi := 6;
luas := (alas * tinggi) / 2;
DBMS_OUTPUT.PUT_LINE(‘LUAS = ‘ || luas);
END;
/
…………………………………
EXECUTE hitung_luas_segitiga;
CREATE OR REPLACE PROCEDURE hitung_luas_segitiga AS
alas NUMBER(5);
tinggi NUMBER(5);
luas NUMBER(10);
BEGIN
alas := 3;
tinggi := 6;
luas := (alas * tinggi) / 2;
DBMS_OUTPUT.PUT_LINE(‘LUAS = ‘ || luas);
END;
/
…………………………………
EXECUTE hitung_luas_segitiga;
·
Procedure Dengan
Parameter.
o
Dengan
Parameter Masukan
CREATE OR REPLACE PROCEDURE
tambah_dua ( a IN INTEGER) AS
hasil INTEGER(5);
BEGIN
hasil := a + 2;
DBMS_OUTPUT.PUT_LINE (‘Hasil akhir = ‘ || hasil);
END;
/
………………………………
EXECUTE tambah_dua(4);
CREATE OR REPLACE PROCEDURE
tambah_dua ( a IN INTEGER) AS
hasil INTEGER(5);
BEGIN
hasil := a + 2;
DBMS_OUTPUT.PUT_LINE (‘Hasil akhir = ‘ || hasil);
END;
/
………………………………
EXECUTE tambah_dua(4);
o
Dengan
Parameter Keluaran
CREATE OR REPLACE PROCEDURE
tambah_10 ( bil IN INTEGER, X OUT INTEGER) AS
BEGIN
X := bil + 10;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
hasil INTEGER;
BEGIN
tambah_10(5, hasil);
DBMS_OUTPUT.PUT_LINE(‘Hasilnya = ‘ || TO_CHAR(hasil));
END;
/
tambah_10 ( bil IN INTEGER, X OUT INTEGER) AS
BEGIN
X := bil + 10;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
hasil INTEGER;
BEGIN
tambah_10(5, hasil);
DBMS_OUTPUT.PUT_LINE(‘Hasilnya = ‘ || TO_CHAR(hasil));
END;
/
o
Dengan
Parameter Masukan /Keluaran
CREATE OR REPLACE
PROCEDURE
tambah_10 ( X IN OUT INTEGER) AS
BEGIN
X := X + 10;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
Y INTEGER;
BEGIN
Y := 15;
tambah_10(Y);
DBMS_OUTPUT.PUT_LINE(‘Hasilnya = ‘ || TO_CHAR(Y));
END;
/
tambah_10 ( X IN OUT INTEGER) AS
BEGIN
X := X + 10;
END;
/
Atau
SET SERVEROUTPUT ON
DECLARE
Y INTEGER;
BEGIN
Y := 15;
tambah_10(Y);
DBMS_OUTPUT.PUT_LINE(‘Hasilnya = ‘ || TO_CHAR(Y));
END;
/
·
Procedure Didalam Procedure.
J INTEGER;
BEGIN
FOR J IN 1..X LOOP
DBMS_OUTPUT.PUT_LINE( TO_CHAR(J));
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE panggil_proc AS
BEGIN
cetak_angka(10);
END;
/
----------------------------
SET SERVEROUTPUT ON
EXECUTE panggil_proc
0 komentar:
Posting Komentar