Funkcije i uskladištene procedure u SQL-u (POSTGRESQL)

Funkcije i uskladištene procedure u SQL-u predstavljaju skup komandi i upita koje čuvamo za kasniju upotrebu. Umesto da određene linije koda pišemo svaki put kad nam trebaju, sačuvamo ih u obliku funkcije i procedure i pozovemo po potrebi. Isti kod koristimo više puta.

Koja je razlika između funkcije i procedure?

Funkcija mora da vraća neku vrednost, dok kod procedure to nije slučaj. Funkcija ima ulazne parametre, a procedure može imati i ulazne i izlazne. Funkcija može da se pozove iz procedure, procedure ne može da se pozove iz funkcije.

Procedura može da sadrži i SELECT/INSERT/UPDATE/DELETE naredbe, dok funkcija isključivo koristi SELECT. Dakle, procedura može da menja tabele i baze, dok funkcija samo čita vrednosti.

U SELECT upitu može da se pozove funkcije, dok procedura ne može nikako. Slično važi i za prilike kada koristimo WHERE/HAVING.

Funkcija

Sintaksa izgleda otprilike ovako:

CREATE [or REPLACE] FUNCTION ime_funkcije(lista_parametara)
   RETURNS izlazni_podatak 
   LANGUAGE plpgsql
  as
$$
DECLARE 
-- deklarišemo varijable
BEGIN
 -- logika funkcije
END;
$$

Primer:

Ako koristite POSTGRESQL i pgAdmin, funkcija izgleda ovako.

Pozivamo je uglavnom pomoću select ili call naredbe praćemo imenom funkcije i prosleđenim argumentima.

Procedura

Sintaksa za proceduru je:

CREATE [OR REPLACE] PROCEDURE ime_procedure(lista_parametara)
LANGUAGE ime_jezika
AS $
    kod;
$;

Primer:

Ovako ona izgleda u pgAdminu.

Pozivamo je pomoću ključnih reči CALL ili EXEC.

Pogledaj još

Koliko vremena ste proveli na Word dokumentu?

Ako želite da znate koliko vremena vam je rad na nekom dokumentu oduzeo, postoji jednostavan …