Postopki proti funkcijam v programiranju
Postopki in funkcije v programiranju programerjem omogočajo združevanje navodil v enem bloku, ki ga je mogoče priklicati z različnih mest v programu. Koda postane lažje razumljiva in bolj kompaktna. Če spremembe izvedete na enem mestu, bo to vplivalo na celotno kodo. S pomočjo funkcij in postopkov; linearno in dolgo kodo lahko razdelimo na neodvisne odseke. Omogočajo večjo prilagodljivost pri kodiranju različnih programskih jezikov in baz podatkov.
Kaj so funkcije?
Funkcije lahko sprejemajo parametre, ki so znani tudi kot argumenti. Izvajajo naloge v skladu s temi argumenti ali parametri in vrnejo vrednosti danih tipov. To lahko bolje razložimo s pomočjo primera: funkcija sprejme niz kot parameter in vrne prvi vnos ali zapis iz baze podatkov. Upošteva vsebino za določeno polje, ki se začne s takimi znaki.
Sintaksa funkcije je naslednja:
USTVARI ALI ZAMENJAJ FUNKCIJO my_func
(p_name IN VARCHAR2:='Jack') vrni varchar2 kot začetek … konec
Kaj so postopki?
Procedure lahko sprejmejo parametre ali argumente in izvajajo naloge v skladu s temi parametri. Če procedura sprejme niz kot parameter in izda seznam zapisov v bazi podatkov, za katere se vsebina določenega polja začne s takimi znaki.
Sintaksa postopkov je naslednja:
USTVARI ALI ZAMENJAJ POSTOPEK my_proc
(p_name IN VARCHAR2:=‘Jack’) kot začetek … konec
V glavnem obstajata dva načina, na katera se parameter posreduje funkcijam in proceduram; po vrednosti ali po sklicu. Če je parameter posredovan z vrednostjo; sprememba je prizadeta znotraj funkcije ali postopka, ne da bi vplivala na njeno dejansko vrednost.
Po drugi strani pa, če so parametri posredovani s sklici; dejanska vrednost tega parametra bo spremenjena povsod, kjer je poklican znotraj kode v skladu z navodili.
Razlika med postopki in funkcijami
• Ko je parameter posredovan v proceduro; ne vrne nobene vrednosti, medtem ko funkcija vedno vrne vrednost.
• Ena večjih razlik pri obeh je, da se procedure ne uporabljajo v bazah podatkov, medtem ko imajo funkcije pomembno vlogo pri vračanju vrednosti iz baze podatkov.
• Postopki lahko vrnejo več vrednosti, funkcije pa lahko vrnejo omejene vrednosti.
• Operacije DML se lahko uporabljajo v shranjenih procedurah; vendar niso možni v funkcijah.
• Funkcije lahko vrnejo samo eno vrednost in je obvezna, medtem ko lahko procedure vrnejo n ali nič vrednosti.
• V funkcijah obravnavanja napak ni mogoče izvesti, medtem ko ga je mogoče izvesti v shranjenih procedurah.
• Vhodne in izhodne parametre je mogoče posredovati v procedurah, medtem ko v primeru funkcij; posredovati je mogoče samo vhodne parametre.
• Funkcije je mogoče priklicati iz procedur, medtem ko ni mogoče priklicati procedure iz funkcije.
• Upravljanje transakcij se lahko upošteva v postopkih, ne more pa v primeru funkcij.