STORED PROCEDURE Achmad Yasid SKom Pengertian Stored Procedure

  • Slides: 17
Download presentation
STORED PROCEDURE Achmad Yasid, SKom

STORED PROCEDURE Achmad Yasid, SKom

Pengertian Stored Procedure l l l Prosedur (sub program)yang terdiri dari bagian deklaratif dan

Pengertian Stored Procedure l l l Prosedur (sub program)yang terdiri dari bagian deklaratif dan prosedural statemen SQL yang tersimpan pada katalog database My. SQL Diaktifkan dengan memanggil nama dari stored procedure tersebut dari DBMS(query editor, procedure yang lain) atau program aplikasi Statemen deklaratif (CREATE, UPDATE, SELECT dll) Procedural language (IF-THEN-ELSE dan WHILE DO) Ketika memanggil stored procedure kita dapat menentukan Input dan Output prameter.

Statement Penyusun Stored Procedure 1. 2. 3. Nama Stored Procedure Parameter Body

Statement Penyusun Stored Procedure 1. 2. 3. Nama Stored Procedure Parameter Body

Contd. Stored Procedure Nama Procedure CREATE PROCEDURE DELETE_MHS (IN P_MHSID INTEGER) Parameter BEGIN DELETE

Contd. Stored Procedure Nama Procedure CREATE PROCEDURE DELETE_MHS (IN P_MHSID INTEGER) Parameter BEGIN DELETE FROM MAHASISWA WHERE ID_MHS = P_MHSID; END Body

Pemanggilan Stored Procedure l Menggunakan Call Statement l l CALL DELETE_MHS (8) Akan menghapus

Pemanggilan Stored Procedure l Menggunakan Call Statement l l CALL DELETE_MHS (8) Akan menghapus data mahasiswa dengan ID mahasiswa = 8

Answer : = 'Y'; WHILE answer = 'Y' DO PRINT 'Do you want to

Answer : = 'Y'; WHILE answer = 'Y' DO PRINT 'Do you want to remove all Mahasiswa (Y/N)? ' READ answer IF answer = 'Y' THEN PRINT 'Enter Mahasiswa ID: '; READ p_mhsid; CALL DELETE_MHS(p_mhsid); ENDIF; ENDWHILE; Menggunakan Stored Procedure Hasil kedua kode ini sama call with the body of the procedure itself: Answer : = 'Y'; WHILE answer = 'Y' DO PRINT 'Do you want to remove all Mahasiswa (Y/N)? ' READ answer IF answer = 'Y' THEN PRINT 'Enter Mahasiswa ID : '; READ p_mhsid; DELETE FROM Mahasiswa WHERE ID_MHS= : p_mhsid; ENDIF; ENDWHILE; Tidak menggunakan Stored Procedure

Parameter Bentuk Umum :

Parameter Bentuk Umum :

Parameter l Tipe parameter ada tiga l l l IN data dapat dimasukkan pada

Parameter l Tipe parameter ada tiga l l l IN data dapat dimasukkan pada stored procedure OUT Menghasilkan keluaran Store Procedure INOUT dapat berfungsi sebagai input dan output

Body l l l Berisi semua statement yang akan dieksekusi. Diawali keyword BEGIN dan

Body l l l Berisi semua statement yang akan dieksekusi. Diawali keyword BEGIN dan diakhiri END Statement SQL dapat berupa : DDL, DML DCL Procedural Language : IF-THEN-ELSE, WHILE-DO Dapat mendeklarasikan variabel (local variabel)

Body l Local Variabel l l Variabel yang dapat menyimpan data sementara pada stored

Body l Local Variabel l l Variabel yang dapat menyimpan data sementara pada stored procedure Syntax : DECLARE NAMA_VARIABEL TIPE DATA Ditulis pada baris pertama setelah keyword begin Contoh : l l DECLARE NUM 1 DECIMAL(7, 2); DECLARE ALPHA 1 VARCHAR(20);

Body l l Local Variabel Contoh : CREATE PROCEDURE TEST (OUT NUMBER 1 INTEGER)

Body l l Local Variabel Contoh : CREATE PROCEDURE TEST (OUT NUMBER 1 INTEGER) BEGIN DECLARE NUMBER 2 INTEGER DEFAULT 100; SET NUMBER 1 = NUMBER 2; END

Body l l Local Variabel Pemanggilan stored procedure CALL TEST (@NUMBER) SELECT @NUMBER The

Body l l Local Variabel Pemanggilan stored procedure CALL TEST (@NUMBER) SELECT @NUMBER The result is: @NUMBER ------100

Body l SET Statement l l Digunakan untuk memberi nilai pada suatu variabel Contoh

Body l SET Statement l l Digunakan untuk memberi nilai pada suatu variabel Contoh : l l l SET NUMBER 1 = NUMBER 2; SET VAR 1 : = 1; SET VAR 1 = 1, VAR 2 = VAR 1;

Body l Flow Control l <flow control statement> : : = <if statement> |

Body l Flow Control l <flow control statement> : : = <if statement> | <case statement> | <while statement> | <repeat statement> | <loop statement> | <leave statement> | <iterate statement>

Body l Flow Control l l If Statement Contoh : CREATE PROCEDURE DIFFERENCE (IN

Body l Flow Control l l If Statement Contoh : CREATE PROCEDURE DIFFERENCE (IN P 1 INTEGER, IN P 2 INTEGER, OUT P 3 INTEGER) BEGIN IF P 1 > P 2 THEN SET P 3 = 1; ELSEIF P 1 = P 2 THEN SET P 3 = 2; ELSE SET P 3 = 3; END IF; END

l End.

l End.