Bir Function (Fonksiyon) değer return eden Pl-Sql bloğudur diyebiliriz. Prosedurler ile aynı özelliklere sahiptir tek farkı ise bir değer return etmesidir. Fonksiyonlarda bir kez derlenerekr veritabanı içerisinde bir nesne olarak saklanır ve defalarca kullanılırlar.
Procedures | Functions |
RETURN cümlesi içermez | RETURN içermek zorundadır |
Pl SQL Bloğu alarak çalıştırılır | Bir ifadenin içerisinde kullanılabilir. |
Output parametresi içerebilir. | Tek bir değer döndürmelidir. |
Create Funktion Örnek:
CREATE OR REPLACE FUNCTION UCRET_GETIR
(p_id employees.employee_id%TYPE) RETURN NUMBER IS
v_sal employees.salary%TYPE := 0;
BEGIN
SELECT salary INTO v_sal FROM employees
WHERE employee_id = p_id;
RETURN v_sal;
END UCRET_GETIR;
Fonksiyonun çağrılması ve çalıştırılması;
EXECUTE dbms_output.put_line(UCRET_GETIR(100));
veya
begin
dbms_output.put_line(UCRET_GETIR(100));
end;
çıktı;
24000
Başka bir çalıştırma yöntemi ise başka bir Pl-Sql bloğundaki bir değişkene direk atama yapılacak şekilde de fonksiyon çağrılabilir.
declare
v_maas number;
begin
v_maas:=UCRET_GETIR(101);
dbms_output.put_line(v_maas);
end;
çıktı
17000
bir diğer yöndetmde
select ucret_getir(100) from dual;
çıktı
24000
Bir yanıt yazın