Procedure protiv funkcija u programiranju
Procedure i funkcije u programiranju, dozvoljavaju programerima da grupišu instrukcije zajedno u jednom bloku i može se pozvati sa različitih mesta u programu. Kod postaje lakši za razumijevanje i kompaktniji. Izvođenjem izmjena na jednom mjestu, cijeli kod će biti pogođen. Uz pomoć funkcija i procedura; linearni i dugi kod se mogu podijeliti u nezavisne dijelove. Oni pružaju veću fleksibilnost kodiranju različitih programskih jezika i baza podataka.
Šta su funkcije?
Funkcije mogu prihvatiti parametre koji su također poznati kao argumenti. Oni izvršavaju zadatke prema ovim argumentima ili parametrima i vraćaju vrijednosti datih tipova. Možemo to bolje objasniti uz pomoć primjera: funkcija prihvaća string 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 ZAMJENI FUNKCIJU my_func
(p_name IN VARCHAR2:='Jack') vrati varchar2 kao početak … kraj
Šta su procedure?
Procedure mogu prihvatiti parametre ili argumente i izvršavaju zadatke prema ovim parametrima. Ako procedura prihvati string kao parametar i daje listu sa zapisima u bazi podataka za koje sadržaj određenog polja počinje takvim znakovima.
Sintaksa procedura je sljedeća:
KREIRAJTE ILI ZAMJENITE POSTUPAK 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 referenci. Ako je parametar proslijeđen vrijednosti; modifikacija je pogođena unutar funkcije ili procedure bez utjecaja na njenu stvarnu vrijednost.
S druge strane, ako se parametri prenose referencama; stvarna vrijednost ovog parametra će biti promijenjena gdje god se pozove unutar koda prema uputama.
Razlika između procedura i funkcija
• Kada se parametar preda 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še vrijednosti i funkcije mogu vratiti ograničene vrijednosti.
• DML operacije se mogu koristiti u pohranjenim procedurama; međutim, one nisu moguće u funkcijama.
• Funkcije mogu vratiti samo jednu vrijednost i to je obavezno dok procedure mogu vratiti n ili nula vrijednosti.
• U funkcijama, rukovanje greškama se ne može obaviti dok se može izvršiti u pohranjenim procedurama.
• Ulazni i izlazni parametri se mogu 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 se može uzeti u obzir u procedurama i ne može se uzeti u obzir u slučaju funkcija.