Salvestatud protseduur vs funktsioon
Salvestatud protseduurid ja funktsioonid on kahte tüüpi programmeerimisplokid. Mõlemal peavad olema kutsunimed. Neid kutsunimesid kutsutakse neile teises programmeerimisplokis, nagu protseduurifunktsioonid ja -paketid või SQL-päringud. Mõlemad objektitüübid aktsepteerivad parameetreid ja täidavad ülesannet nende objektide taga. See on süntaks (ORACLE-is) salvestatud protseduuri loomiseks,
protseduuri protseduuri nime loomine või asendamine (parameetrid)
kui
alustada
avaldused;
erand
erand_käitlemine
lõpp;
Ja siin on funktsiooni loomise süntaks (ORACLE-is),
loo või asenda funktsioon function_name (parameetrid)
return return_datatype
kui
alustada
avaldused;
return return_value / muutuja;
erand;
erand_käitlemine;
lõpp;
Salvestatud protseduurid
Nagu eespool mainitud, nimetatakse salvestatud protseduure programmeerimisplokkideks. Nad aktsepteerivad parameetreid kasutaja sisendina ja töötlevad vastavalt protseduuri taga olevale loogikale ning annavad tulemuse (või teevad konkreetse toimingu). Need parameetrid võivad olla IN, OUT ja INOUT tüübid. Protseduuride korpuses võivad olla muutuvad deklaratsioonid, muutuvad määramised, juhtimisavaldused, silmused, SQL päringud ja muud funktsioonid / protseduuri- / pakettkõned.
Funktsioonid
Funktsioone nimetatakse ka programmeerimisplokkideks, mis peavad väärtuse RETURN abil tagastama ja enne väärtuse tagastamist teeb keha ka mõned toimingud (vastavalt antud loogikale). Funktsioonid aktsepteerivad ka parameetreid käitamiseks. Funktsioone saab päringute sees nimetada. Kui funktsiooni kutsutakse SELECT-päringu sees, kehtib see SELECT-päringu tulemuskomplekti iga rea jaoks. ORACLE-funktsioone on mitut kategooriat. Nemad on,
Ühe rea funktsioonidel on alamkategooriad.
Mis vahe on funktsioonil ja salvestatud protseduuril?? • Kõik funktsioonid peavad väärtuse RETURN abil tagastama. Salvestatud protseduurid ei tagasta väärtusi, kasutades käsku RETURN. Protseduuri sees olev RETURN-i avaldus tagastab selle juhtimise kutsuvale programmile. OUT parameetreid saab kasutada salvestatud protseduuride väärtuste tagastamiseks. • Funktsioone saab päringutes kutsuda, kuid salvestatud protseduure ei saa päringutes kasutada. • Funktsiooni loomiseks tuleb lisada andmetüüp RETURN, kuid salvestatud protseduuri DDL puhul see pole. |