Saglabātā procedūra pret funkciju
Saglabātās procedūras un funkcijas ir divu veidu programmēšanas bloki. Abiem noteikti ir saucamie vārdi. Šie izsaucošie vārdi tiek izmantoti, lai tos izsauktu citā programmēšanas blokā, piemēram, procedūru funkcijās un pakotnēs vai SQL vaicājumos. Abi šie objektu tipi pieņem parametrus un veic uzdevumu aiz šiem objektiem. Šī ir sintakse (ORACLE), lai izveidotu saglabātu procedūru, izveidot vai aizstāt procedūras procedūras nosaukums (parametri)
as
sākt
paziņojumi;
izņēmums
exception_handling
beigas;
Un šeit ir sintakse funkcijas izveidei (ORACLE), izveidot vai aizstāt funkciju funkcijas_nosaukums (parametri)
return return_datatype
as
sākt
paziņojumi;
atgriezties atgriešanās_vērtība/mainīgais;
izņēmums;
exception_handling;
beigas;
Saglabātās procedūras
Kā minēts iepriekš, saglabātās procedūras tiek nosauktas par programmēšanas blokiem. Viņi pieņem parametrus kā lietotāja ievadi un apstrādā saskaņā ar procedūras loģiku un sniedz rezultātu (vai veic konkrētu darbību). Šie parametri var būt IN, OUT un INOUT tipi. Mainīgo deklarācijas, mainīgo piešķiršana, vadības priekšraksti, cilpas, SQL vaicājumi un citas funkcijas/procedūru/pakotņu izsaukumi var būt procedūru pamattekstā.
Funkcijas
Funkcijas tiek nosauktas arī par programmēšanas blokiem, kuriem ir jāatgriež vērtība, izmantojot RETURN priekšrakstu, un pirms vērtības atgriešanas tā pamatteksts arī veic dažas darbības (saskaņā ar doto loģiku). Funkcijas pieņem arī palaišanas parametrus. Funkcijas var izsaukt vaicājumos. Ja funkcija tiek izsaukta SELECT vaicājumā, tā attiecas uz katru SELECT vaicājuma rezultātu kopas rindu. Ir vairākas ORACLE funkciju kategorijas. Tie ir
Vienas rindas funkcijas (atgriež vienu rezultātu katrai vaicājuma rindai)
Ir vienas rindas funkciju apakškategorijas.
- Ciparu funkcija (piem.: ABS, SIN, COS)
- Rakstzīmju funkcija (piemēram, CONCAT, INITCAP)
- Datuma un laika funkcija (piem.: LAST_DAY, NEXT_DAY)
- Konversijas funkcijas (piem.: TO_CHAR, TO_DATE)
- Savākšanas funkcija (piem.: CARDINALITY, SET)
- Apkopotās funkcijas (atgriež vienu rindu, pamatojoties uz rindu grupu. Piemēram, AVG, SUM, MAX)
- Analītiskās funkcijas
- Objektu atsauces funkcijas
- Modeļa funkcijas
- Lietotāja definētas funkcijas
Kāda ir atšķirība starp funkciju un saglabāto procedūru?
• Visām funkcijām ir jāatgriež vērtība, izmantojot RETURN priekšrakstu. Saglabātās procedūras neatgriež vērtības, izmantojot RETURN paziņojumu. Procedūras paziņojums RETURN atgriezīs savu vadību izsaucējai programmai. OUT parametrus var izmantot, lai atgrieztu vērtības no saglabātajām procedūrām.
• Funkcijas var izsaukt vaicājumos, bet saglabātās procedūras nevar izmantot vaicājumos.
• Lai izveidotu funkciju, ir jāiekļauj datu tips RETURN, bet saglabātajā procedūrā DDL tā nav.