Tallennettu toimenpide vs. toiminto
Tallennetut proseduurit ja funktiot ovat kahden tyyppisiä ohjelmointilohkoja. Molemmilla täytyy olla kutsuvat nimet. Näitä kutsuvia nimiä käytetään kutsumaan niitä toisessa ohjelmointilohkossa, kuten proseduurifunktioissa ja paketeissa tai SQL-kyselyissä. Molemmat objektityypit hyväksyvät parametrit ja suorittavat näiden objektien takana olevat tehtävät. Tämä on syntaksi (ORACLEssa) tallennetun proseduurin luomiseen, luo tai korvaa toimintosarjan nimi (parametrit)
as
aloita
lausunnot;
poikkeus
poikkeuksen_käsittely
loppu;
Ja tässä on syntaksi funktion luomiseksi (ORACLEssa), luo tai korvaa funktio funktion_nimi (parametrit)
return return_datatype
as
aloita
lausunnot;
palautuspalautusarvo/muuttuja;
poikkeus;
exception_handling;
loppu;
Tallennetut prosessit
Kuten yllä mainittiin, tallennettuja proseduureja kutsutaan ohjelmointilohkoiksi. Ne hyväksyvät parametrit käyttäjän syötteeksi ja käsittelevät prosessin taustalla olevan logiikan mukaisesti ja antavat tuloksen (tai suorittavat tietyn toimenpiteen). Nämä parametrit voivat olla IN-, OUT- ja INOUT-tyyppejä. Muuttujien ilmoitukset, muuttujien määritykset, ohjauskäskyt, silmukat, SQL-kyselyt ja muut funktiot/proseduuri-/pakettikutsut voivat olla toimintosarjan sisällä.
Toiminnot
Funktiot ovat myös nimetty ohjelmointilohkoiksi, joiden on palautettava arvo RETURN-käskyllä, ja ennen kuin se palauttaa arvon, sen runko suorittaa myös joitain toimintoja (annetun logiikan mukaan). Funktiot hyväksyvät myös parametrit suoritettavaksi. Funktioita voidaan kutsua kyselyjen sisällä. Kun funktiota kutsutaan SELECT-kyselyn sisällä, se koskee jokaista SELECT-kyselyn tulosjoukon riviä. ORACLE-funktioita on useita luokkia. He ovat
Yksiriviset funktiot (palauttaa yhden tuloksen jokaiselle kyselyn riville)
Yksirivifunktioissa on alaluokkia.
- Numeerinen funktio (esim.: ABS, SIN, COS)
- Merkkitoiminto (esim. CONCAT, INITCAP)
- Päivämäärä-aikatoiminto (esim. LAST_DAY, NEXT_DAY)
- Muunnosfunktiot (esim.: TO_CHAR, TO_DATE)
- Keräystoiminto (esim.: CARDINALITY, SET)
- Aggregaattifunktiot (Palauttaa yhden rivin riviryhmän perusteella. Esim: AVG, SUM, MAX)
- Analyyttiset funktiot
- Objektiviittausfunktiot
- Mallin toiminnot
- Käyttäjän määrittämät toiminnot
Mitä eroa on toiminnolla ja tallennetulla toimenpiteellä?
• Kaikkien funktioiden on palautettava arvo RETURN-käskyn avulla. Tallennetut proseduurit eivät palauta arvoja RETURN-käskyn avulla. RETURN-käsky proseduurin sisällä palauttaa sen ohjauksen kutsuvalle ohjelmalle. OUT-parametreja voidaan käyttää palauttamaan arvoja tallennetuista proseduureista.
• Funktioita voidaan kutsua kyselyjen sisällä, mutta tallennettuja proseduureja ei voida käyttää kyselyjen sisällä.
• RETURN-tietotyyppi on sisällytettävä funktion luomiseksi, mutta tallennetussa proseduurissa DDL se ei ole.