Išsaugota procedūra prieš funkciją
Išsaugotos procedūros ir funkcijos yra dviejų tipų programavimo blokai. Abu jie turi turėti vadinamuosius vardus. Tie iškvietimo vardai naudojami jiems iškviesti kitame programavimo bloke, pavyzdžiui, procedūrų funkcijose ir paketuose arba SQL užklausose. Abu šie objektų tipai priima parametrus ir atlieka už tai esančią užduotį. Tai sintaksė (ORACLE), skirta sukurti išsaugotą procedūrą, sukurti arba pakeisti procedūros procedūros pavadinimą (parametrus)
as
pradėti
pareiškimai;
išimtis
exception_handling
pabaiga;
Ir čia yra funkcijos kūrimo sintaksė (ORACLE), kurti arba pakeisti funkciją funkcijos_pavadinimas (parametrai)
return return_datatype
as
pradėti
pareiškimai;
return return_value/kintamasis;
išimtis;
exception_handling;
pabaiga;
Išsaugomos procedūros
Kaip minėta pirmiau, saugomos procedūros vadinamos programavimo blokais. Jie priima parametrus kaip vartotojo įvestį ir apdoroja pagal procedūros logiką ir pateikia rezultatą (arba atlieka konkretų veiksmą). Šie parametrai gali būti IN, OUT ir INOUT tipų. Kintamųjų deklaracijos, kintamųjų priskyrimas, valdymo sakiniai, kilpos, SQL užklausos ir kitos funkcijos / procedūrų / paketų iškvietimai gali būti procedūrų korpuse.
Funkcijos
Funkcijos taip pat vadinamos programavimo blokais, kurie turi grąžinti reikšmę naudodami RETURN sakinį, o prieš grąžinant reikšmę, jos kūnas taip pat atlieka kai kuriuos veiksmus (pagal pateiktą logiką). Funkcijos taip pat priima paleisti parametrus. Funkcijos gali būti iškviestos užklausų viduje. Kai funkcija iškviečiama SELECT užklausoje, ji taikoma kiekvienai SELECT užklausos rezultatų rinkinio eilutei. Yra keletas ORACLE funkcijų kategorijų. Jie yra
Vienos eilutės funkcijos (pateikia vieną rezultatą kiekvienai užklausos eilutei)
Yra vienos eilutės funkcijų subkategorijos.
- Skaičių funkcija (pvz., ABS, SIN, COS)
- Simbolių funkcija (pvz., CONCAT, INITCAP)
- Datos ir laiko funkcija (pvz., LAST_DAY, NEXT_DAY)
- Konversijos funkcijos (pvz.: TO_CHAR, TO_DATE)
- Surinkimo funkcija (pvz.: KARDINALUMAS, SET)
- Suvestinės funkcijos (pateikia vieną eilutę, pagrįstą eilučių grupe. Pvz.: AVG, SUM, MAX)
- Analitinės funkcijos
- Objekto nuorodos funkcijos
- Modelio funkcijos
- Vartotojo nustatytos funkcijos
Kuo skiriasi funkcija ir išsaugota procedūra?
• Visos funkcijos turi grąžinti reikšmę naudojant RETURN sakinį. Išsaugotos procedūros negrąžina reikšmių naudojant RETURN sakinį. PROCEDŪROS sakinys RETURN grąžins jo valdymą kviečiančiai programai. OUT parametrai gali būti naudojami norint grąžinti išsaugotų procedūrų reikšmes.
• Funkcijos gali būti iškviečiamos užklausose, tačiau išsaugotos procedūros negali būti naudojamos užklausose.
• Norint sukurti funkciją turi būti įtrauktas RETURN duomenų tipas, tačiau išsaugotoje procedūroje DDL to nėra.