PL-SQL FUNCTION

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çermezRETURN içermek zorundadır
Pl SQL Bloğu alarak çalıştırılırBir 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