Procedure vs funkcije u programiranju
Procedure i funkcije u programiranju, omogućuju programerima grupiranje instrukcija zajedno u jednom bloku i može se pozvati s različitih mjesta unutar programa. Kod postaje lakši za razumijevanje i kompaktniji. Izvođenjem izmjena na jednom mjestu to će utjecati na cijeli kôd. Uz pomoć funkcija i postupaka; linearni i dugi kod mogu se podijeliti u nezavisne dijelove. Oni pružaju veću fleksibilnost u kodiranju različitih programskih jezika i baza podataka.
Što su funkcije?
Funkcije mogu prihvatiti parametre koji su također poznati kao argumenti. Oni izvršavaju zadatke prema tim argumentima ili parametrima i vraćaju vrijednosti zadanih tipova. Možemo to bolje objasniti uz pomoć primjera: funkcija prihvaća niz kao parametar i vraća prvi unos ili zapis iz baze podataka. Uzima u obzir sadržaj za određeno polje koje počinje takvim znakovima.
Sintaksa funkcije je sljedeća:
KREIRAJ ILI ZAMIJENI FUNKCIJU my_func
(p_name IN VARCHAR2:=‘Jack’) vrati varchar2 kao početak … kraj
Što su postupci?
Procedure mogu prihvatiti parametre ili argumente i izvršavaju zadatke prema tim parametrima. Ako procedura prihvati string kao parametar i daje popis sa zapisima u bazi podataka za koje sadržaj određenog polja počinje takvim znakovima.
Sintaksa procedura je sljedeća:
KREIRAJTE ILI ZAMIJENITE PROCEDURU my_proc
(p_name IN VARCHAR2:=‘Jack’) kao početak … kraj
Uglavnom, postoje dva načina na koja se parametar prosljeđuje u funkcijama i procedurama; po vrijednosti ili po referenci. Ako je parametar proslijeđen vrijednošću; modifikacija je pogođena unutar funkcije ili procedure bez utjecaja na stvarnu vrijednost.
S druge strane, ako se parametri prosljeđuju referencama; stvarna vrijednost ovog parametra će se promijeniti gdje god se pozove unutar koda prema uputama.
Razlika između procedura i funkcija
• Kada je parametar proslijeđen u proceduru; ne vraća nikakvu vrijednost dok funkcija uvijek vraća vrijednost.
• Jedna od glavnih razlika u oba je ta što se procedure ne koriste u bazama podataka, dok funkcije igraju važnu ulogu u vraćanju vrijednosti iz baze podataka.
• Procedure mogu vratiti višestruke vrijednosti, a funkcije mogu vratiti ograničene vrijednosti.
• DML operacije se mogu koristiti u pohranjenim procedurama; međutim, oni nisu mogući u funkcijama.
• Funkcije mogu vratiti samo jednu vrijednost i to je obavezno, dok procedure mogu vratiti n ili nula vrijednosti.
• U funkcijama se rukovanje pogreškama ne može izvesti, dok se može izvesti u pohranjenim procedurama.
• Ulazni i izlazni parametri mogu se proslijediti u procedurama dok u slučaju funkcija; mogu se proslijediti samo ulazni parametri.
• Funkcije se mogu pozvati iz procedura, dok nije moguće pozvati proceduru iz funkcije.
• Upravljanje transakcijama može se uzeti u obzir u procedurama, ali se ne može uzeti u obzir u slučaju funkcija.