Shranjeni postopek proti funkciji
Shranjene procedure in funkcije so dve vrsti programskih blokov. Oba morata imeti klicajoča imena. Ta klicna imena se uporabljajo za njihov klic znotraj drugega programskega bloka, kot so funkcije postopkov in paketi ali poizvedbe SQL. Oba tipa objektov sprejemata parametre in izvajata nalogo za temi objekti. To je sintaksa (v ORACLE) za ustvarjanje shranjene procedure, ustvari ali zamenjaj ime procedure procedure (parametri)
as
začetek
izjave;
izjema
obravnava_izjem
konec;
In tukaj je sintaksa za ustvarjanje funkcije (v ORACLE), ustvari ali zamenjaj funkcijo function_name (parametri)
vrni return_datatype
as
začetek
izjave;
vrni povratno_vrednost/spremenljivko;
izjema;
obravnava_izjem;
konec;
Shranjeni postopki
Kot je omenjeno zgoraj, se shranjene procedure imenujejo programski bloki. Sprejmejo parametre kot uporabniški vnos in obdelajo v skladu z logiko postopka ter dajo rezultat (ali izvedejo določeno dejanje). Ti parametri so lahko tipa IN, OUT in INOUT. Deklaracije spremenljivk, dodelitve spremenljivk, kontrolni stavki, zanke, poizvedbe SQL in drugi klici funkcij/procedur/paketov so lahko znotraj telesa procedur.
Funkcije
Funkcije so tudi poimenovani programski bloki, ki morajo vrniti vrednost z uporabo stavka RETURN, in preden vrne vrednost, njihovo telo izvede tudi nekaj dejanj (v skladu z dano logiko). Funkcije sprejemajo tudi parametre za izvajanje. Funkcije lahko kličete znotraj poizvedb. Ko je funkcija poklicana znotraj poizvedbe SELECT, velja za vsako vrstico nabora rezultatov poizvedbe SELECT. Obstaja več kategorij funkcij ORACLE. Oni so,
Funkcije ene vrstice (vrne en rezultat za vsako in vsako vrstico poizvedbe)
Obstajajo podkategorije funkcij ene vrstice.
- Numerična funkcija (npr.: ABS, SIN, COS)
- Funkcija znakov (npr.: CONCAT, INITCAP)
- Funkcija datuma in časa (npr. LAST_DAY, NEXT_DAY)
- Funkcije pretvorbe (npr.: TO_CHAR, TO_DATE)
- Funkcija zbiranja (npr.: CARDINALITY, SET)
- Združevalne funkcije (Vrne eno vrstico na podlagi skupine vrstic. Npr.: AVG, SUM, MAX)
- Analitične funkcije
- Referenčne funkcije objekta
- Funkcije modela
- Uporabniško določene funkcije
Kakšna je razlika med funkcijo in shranjeno proceduro?
• Vse funkcije morajo vrniti vrednost z uporabo stavka RETURN. Shranjene procedure ne vračajo vrednosti z uporabo stavka RETURN. Stavek RETURN znotraj procedure vrne nadzor klicnemu programu. OUT parametre je mogoče uporabiti za vrnitev vrednosti iz shranjenih procedur.
• Funkcije lahko kličete znotraj poizvedb, vendar shranjenih procedur ni mogoče uporabiti znotraj poizvedb.
• Podatkovni tip RETURN mora biti vključen, da ustvarite funkcijo, vendar v shranjeni proceduri DDL ni.