store procedure
TRANSCRIPT
Praktek Pemograman Client-Server
3 MI dan 3 TI
© Diqy Fakhrun S., S.T
Stored Procedure• Stored procedure program yang disimpan
dalam database dan dikompilasi bila digunakan– Dalam Oracle, dapat ditulis dalam PL / SQL
atau Java– Dalam SQL Server, dapat ditulis dalam
Transact-SQL atau CLR• Stored Procedure yang disimpan dapat
menerima parameter input dan dapat mengembalikan hasil
• Stored Procedure yang disimpan dapat dipanggil dari– Program yang ditulis dalam bahasa standar,
misalnya: Java, C #– Scripting bahasa, misalnya: JavaScript,
VBScript– SQL command prompt, misalnya: sqlcmd,
SQL Plus, Query Analyzer
Kelebihan Stored Procedure• Keamanan lebih
– stored procedure selalu tersimpan pada database server
– Memberikan grant user permission utk menjalankan SP
• Mengurangi lalu lintas jaringan – SP dapat mengurangi query SQL panjang
menjadi satu baris yang ditransmisikan sehingga mengurangi lalu lintas client-server.
Kelebihan Stored Procedure• Waktu Eksekusi lebih cepat
– Bila perlu T-SQL yang banyak dan berulang-ulang, maka SP bisa lebih cepat drpd batch T-SQL code. SP dicompile sekali, disimpan dalam memory dan digunakan untuk pemanggilan berikutnya (tidak perlu dikompilasi ulang). SQL dapat dioptimasikan oleh DBMS compiler
• Berbagi-pakai kode modular berimbas pada:– Mengurangi pekerjaan berlebih – penggunaan
ulang kode secara efisien– Standarisasi pemrosesan– Spesialisasi antara developer
Dasar Stored Procedure
Membuat Stored Procedure
• Sintaks:CREATE PROCEDURE NamaProsedur AS
Peryataan
• Contoh:CREATE PROCEDURE pr_honor AS
SELECT namainstruktur, honor FROMInstruktur
Menjalankan Stored Procedure
• dengan EXEC – EXEC pr_honor– EXEC sp_help
• dengan EXECUTE– EXECUTE pr_honor– EXECUTE sp_help
• langsung nama prosedur– pr_honor– sp_help
Mengkoreksi Sebuah Prosedur
• Statement ALTER harus digunakan
ALTER PROCEDURE pr_honor AS select inisial, namainstruktur, honorfrom instruktur
Parameter• Prosedur dapat mempunyai parameter berupa
variable yang disuplai oleh program yang memanggilnya
• Sintaks parameter– @param as datatype
• Contoh:
CREATE PROC pr_honor (@p1 int, @p2 char(16), .. )
ASPeryataan
Parameter• Input parameter
– Digunakan untuk memberikan nilai dari pemanggil ke dalam SP
– Contoh:• CREATE PROC pr_honor (@p1 INT) AS …
• Output parameter– Digunakan untuk mengembalikan nilai non-
recordset dari SP ke pemanggil• Misalnya SP untuk insert, mengembalikan
nilai hasil identity– Contoh:
• CREATE PROC pr_honor (@p1 INT, @p2 CHAR(16),@pout1 INT OUT, @pout2 CHAR(1) OUTPUT) AS …
Output Parameter
• Nilai parameter bisa diolah pada program prosedur dan untuk kemudian parameter tersebut dapat diubah dan diberikan nilainya pada program yang memanggilnya.
CREATE PROC m (@p1 int, @p2 int, @h int OUTPUT)
ASSELECT @h= @p1 * @p2
Eksekusi Procedure Berparameter
• Pada saat eksekusi, parameter diberikan setelah nama SP
• Berdasarkan nama:EXEC pr_GetTopProducts
@StartID = 1, @EndID = 10
• Berdasarkan posisi:EXEC pr_GetTopProducts 1, 10