Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

Procedure

Tanım: Oracle'da isim verilerek saklanan ve istenildiği zaman parametrelerle çağrılan , belirli bir görevi görme amacıyla yaratılmış alt program

Procedure'ün Yapısı , Yaratılması ve Çalıştırılması

Oracle'da bir procedure'ün yapısı (yaratırken veya değiştirirken) aşağıdaki gibidir :
CREATE [VEYA REPLACE] PROCEDURE procedure_adı [(parametreler...)]
IS
Declerasyon Bölümü
BEGIN
Çalışan Bölüm
EXCEPTION
Exception oluştuğunda çalışan bölüm
END [procedure_adı];
Not : [] içindekiler isteğe bağlı kullanım anlamına gelmektedir
Aşağıda aldığı isme HELLO diyen ve adı HELLO olan procedure örneği aşağıdaki gibidir :
CREATE OR REPLACE procedure HELLO (firstname VARCHAR2)    
is
begin
    dbms_output.put_line('HELLO ' || firstname );    
end;

Bir procedure aşağıdaki gibi çalıştırılabilir :
EXECUTE procedure_name (parametre 1, parametre2, ...);
veya
EXEC procedure_name (parametre 1, parametre2, ...);
Eğer bir başka bir kod bloğu içindeyseniz (tek başına procedure'ü çalıştırmayacaksanız) sadece aşağıdaki gibi adını ve parametrelerini vererek çağırabilirsiniz :
procedure_name ('x','y');

Procedure Parameter Tipleri

Oracle'de bir procedure'e üç tip parametere verilebilir :
  • IN : Procedure değişken vermek için kullanılır. Değişkenin referansı procedure'e verilir. Procedure değişkeni değiştiremez (read only'dir). Varsayılan olarak parametreler IN'dir
  • OUT : Procedure'den dönüş almak için kullanılır. Değişkenin referansı değil kopyası procedure'e verilir. Procedure out parametrelerin değerlerini değiştirebilir
  • IN OUT : Procedure'e değişkenin referansı verilir ve procedure değişkenin değerini değiştirebilir

IN ve OUT Kullanılan Basit Bir Procedure

Aşağıda hem IN hem de OUT parametresi olan bir procedure görülmektedir :
CREATE OR REPLACE procedure HELLO (firstname IN VARCHAR2, greeting OUT VARCHAR2 )    
is
begin    
    greeting := 'HELLO ' || firstname;
    dbms_output.put_line(greeting);    
end;
/
Procedure, ilk parametre ile HELLO + parametre1 şeklinde mesaj metni oluşturmakta ve greeting değişkenini set etmektedir. Bu procedure aşağıdaki gibi bir kod ile çağrılabilir :
DECLARE 
greating varchar2(20);
begin
    HELLO('Sultan Kutuz',greating);
    dbms_output.put_line(greating); 
end;
/

Bu kod çalıştırıldığında greating değişkenin değeri "HELLO Sultan Kutuz" şeklinde olacaktır

HR Employees Tablsounda Güncelleme Yapan Bir Procedure Örneği

Aşağıda HR schemas'ında Employees tablsounda bir kayıtın Salary değerini verilen değer kadar arttıran procedure örneği görülmektedir :
CREATE OR REPLACE procedure UpdateSalary (eId number , s in number)
is
begin
    update employees set salary=salary+s where employee_id=eId;
end;
/
Yukarıdaki örnek aşağıdaki gibi çağrılabilir:
begin
updatesalary(100,10);
end;
/




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir