Hurriyet

13 Kasım 2012 Salı

PL/SQL Ders 10


Saklı Yordam(Stored Procedure) Nedir?

            Saklı yordam olarak nitelediğimiz prosedürler bir ya da birden fazla işlevi yerine getiren bir PL/SQL bloğudur. Bir prosedürün bir başlığı ve  gövde kısmı vardır. Başlık kısmında prosedürün adı ve prosedüre gönderilen parametreler bulunur. Gövde kısmında ise tanım(declaration),çalıştırma(execution) ve hata(exception) kısmı bulunur. Prosedürler diğer PL/SQL bloklarına benzerler. Sadece tekrar kullanım için isimlendirilirler.

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

1) In parametreleri

2) Out parametreleri

3) In Out parametreleri

Prosedür bir değer döndürmek zorundaa değildir.

Genel yazım şekli
CREATE [OR REPLACE] PROCEDURE prosedür_adı [parametre listesi]
IS   
   Tanım kısmı(Declaration section)
BEGIN   
   Çalıştırılma kısmı (Execution section)
EXCEPTION   
  Hata tanımlama kısmı (Exception section)
END;

            “IS” prosedürün başlangıç kısmını ifade eder. Herhangi bir PL/SQL bloğundaki “Declare” ifadesine denk düşer. “IS” ve “Begin” ifadesi tanım(Declaration) kısmıdır.

            “Create or Replace” ifadesi ise bir prosedürün yaratılmasını  veya eğer daha önceden yaratıldıysa da onun ezilip üzerine tekrar yazılmasını sağlar.

            Aşağıdaki prosedürde çalışanların detayları adında bir prosedür yaratıyoruz. İlk önce cur1 ve rec1 adında cursor ve kayıt(record) tanımlarımızı yapıyoruz. Sonrasında ise bir döngüye sokarak var olan bütün çalışanların isimlerini ekrana yazdırmış oluruz.



1> CREATE OR REPLACE PROCEDURE calisan_detay
2> IS
3>  CURSOR cur1 IS
4>  SELECT first_name, last_name, salary FROM tablo;
5>  rec1 cur1%rowtype;
6> BEGIN
7>  FOR rec1 in cur1
8>  LOOP
9>  dbms_output.put_line(rec1.first_name);
10> END LOOP;
11>END;
13> /

Saklı Yordam(Stored Procedure)’ler nasıl çalıştırılırlar?

2 şekilde bir prosedür çalıştırılabilinir.

1)      SQL konsolundan
Execute prosedür_ismi veya exec prosedür_ismi

2)   Başka bir prosedür içinden direk prosedür ismini yazarak
Prosedür_ismi;

Hiç yorum yok:

Yorum Gönder