Postupci vs funkcije u programiranju
Postupci i funkcije u programiranju, omogućavaju programerima da grupiraju upute u jedan blok i mogu se pozivati s različitih mjesta u programu. Kôd postaje lakše razumljiv i kompaktniji. Izvođenjem izmjena na jednom mjestu utjecat će na cijeli kôd. Uz pomoć funkcija i postupaka; linearni i dugi kod mogu se podijeliti u neovisne odjeljke. Pružaju veću fleksibilnost kodiranju različitih programskih jezika i baza podataka.
Što su funkcije?
Funkcije su sposobne prihvatiti parametre koji su poznati i kao argumenti. Oni izvršavaju zadatke prema tim argumentima ili parametrima i vraćaju vrijednosti zadanih tipova. To možemo bolje objasniti pomoću primjera: Funkcija prihvaća niz kao parametar i vraća prvi unos ili zapis iz baze podataka. Uzima u obzir sadržaj određenog polja koje započinje takvim znakovima.
Sintaksa funkcije je sljedeća:
IZRADI ILI ZAMIJENITE FUNKCIJU my_func
(p_name IN VARCHAR2: = 'Jack') vrati varchar2 kao početak … kraj
Koji su postupci?
Postupci mogu prihvatiti parametre ili argumente i izvršavaju zadatke prema tim parametrima. Ako procedura prihvaća niz kao parametar i daje popis sa zapisima u bazi podataka za koje sadržaj određenog polja započinje takvim znakovima.
Sintaksa postupaka je sljedeća:
IZRADI ILI ZAMIJENITE POSTUPAK my_proc
(p_name IN VARCHAR2: = 'Jack') kao početak … kraj
Uglavnom postoje dva načina na koja se parametar prenosi u funkcijama i postupcima; vrijednošću ili referencom. Ako se parametar prenosi vrijednošću; na izmjenu utječe funkcija ili postupak bez utjecaja na stvarnu vrijednost.
S druge strane, ako se parametri prosljeđuju referencama; stvarna vrijednost ovog parametra promijenit će se gdje god se poziva unutar koda prema uputama.
• Kada se parametar prenese u postupak; ne vraća nikakvu vrijednost dok funkcija uvijek vraća vrijednost. • Jedna od glavnih razlika u obojici je ta što se postupci ne koriste u bazama podataka, dok funkcije igraju važnu ulogu u vraćanju vrijednosti iz baze podataka. • Postupci mogu vratiti više vrijednosti, a funkcije vratiti ograničene vrijednosti. • DML operacije mogu se koristiti u pohranjenim procedurama; međutim, oni nisu mogući u funkcijama. • Funkcije mogu vratiti samo jednu vrijednost i ona je obavezna, dok postupci mogu vratiti n ili nula vrijednosti. • U funkcijama se ne može raditi s pogreškama, dok se to može izvesti u pohranjenim postupcima. • Ulazni i izlazni parametri mogu se prosljeđivati u postupcima, dok u slučaju funkcija; mogu se proslijediti samo ulazni parametri. • Funkcije se mogu pozivati iz procedura, dok postupak nije moguće pozvati iz funkcije. • Upravljanje transakcijama može se razmotriti u postupcima i ne može se razmotriti u slučaju funkcija. |