Saturday 5 April 2014

Oracle Stored Procedure










Stored procedure ün yapısı aşağıdaki elementlerden oluşur.

IS
Burada değişkenler, tipler, diğer tanımlamalar yapılır

BEGIN
Asıl işin yapıldığı kısımdır. Kontrol yapıları, SQL cümleleri, döngüler...

EXCEPTION 
İşleyiş anında oluşan hataların yakalandığı yerdir. İsteğe bağlıdır

END;
İşlemin bitirilmesidir


CREATE ifadesi bir procedure yaratmak için kullanılır.

REPLACE ifadesi ise eger o procedure var ise varolanla yer degiştirmek için kullanılır. 

BEGIN ve END kısımlarının içine ise bizim ifadelerimizi yerleştiririz.

Prosedürlere 3 şekilde parametreler aktarılır.

1) In parametreleri

2) Out parametreleri

3) In Out parametreleri



 Örnek :  DBMS_OUTPUT ile "Hello World" yazdiran bir procedure yazalim.


CREATE OR REPLACE PROCEDURE procPrintHelloWorld
IS
BEGIN

  DBMS_OUTPUT.PUT_LINE('Hello World!');

END;
/

Çalıştır:   

       EXEC procPrintHelloWorld;

Çıktı:

   Hello World!





 Örnek : Hello World + IN Parametre si kullanımı

CREATE OR REPLACE PROCEDURE procOneINParameter(param1 IN VARCHAR2)
IS
BEGIN
 
  DBMS_OUTPUT.PUT_LINE('Hello World IN parametresi ' || param1);
 
END;
/
 
Çalıştır:
EXEC procOneINParameter('deneme');


Çıktı:

Hello World IN parameter deneme






Örnek : Hello World + OUT Parametresi kullanımı


CREATE OR REPLACE PROCEDURE procOneOUTParameter(outParam1 OUT VARCHAR2)
IS
BEGIN

  outParam1 := 'Hello World OUT parameter';

END;
/

DECLARE
  outParam1 VARCHAR2(100);
BEGIN
  procOneOUTParameter(outParam1);
  DBMS_OUTPUT.PUT_LINE(outParam1);
END;
/

Çıktı :
Hello World OUT parameter