Skirtumas tarp saugomos procedūros ir funkcijos

Išsaugota procedūra vs funkcija
 

Saugomos procedūros ir funkcijos yra dviejų tipų programavimo blokai. Jie abu turi turėti skambinančius vardus. Tie skambučių vardai naudojami skambinti jiems kitame programavimo bloke, pavyzdžiui, procedūrų funkcijose ir paketuose arba SQL užklausose. Abu šie objektų tipai priima parametrus ir atlieka užduotį už tų objektų. Tai yra sintaksė (ORACLE), norint sukurti saugomą procedūrą,

 sukurti arba pakeisti procedūros procedūros pavadinimą (parametrus)

 kaip

 prasideda

     teiginiai;

 išimtis

     išimtis_ tvarkymas

 galas;

Čia yra funkcijos kūrimo sintaksė (ORACLE),

sukurti arba pakeisti funkciją function_name (parametrai)

grąžinti grąžinimo duomenų tipą

kaip

prasideda

teiginiai;

return return_value / kintamasis;

išimtis;

išimtis_ tvarkymas;

galas;

Laikomos procedūros

Kaip minėta aukščiau, saugomos procedūros vadinamos programavimo blokais. Jie priima parametrus kaip vartotojo įvestį ir apdoroja vadovaudamiesi procedūros logika ir pateikia rezultatą (arba atlieka konkretų veiksmą). Šie parametrai gali būti IN, OUT ir INOUT tipai. Kintamos deklaracijos, kintamos priskyrimai, valdymo teiginiai, ciklai, SQL užklausos ir kitos funkcijos / procedūros / paketo skambučiai gali būti procedūrų korpuse.

Funkcijos

Funkcijos taip pat vadinamos programavimo blokais, kurie turi grąžinti reikšmę naudodamiesi RETURN sakiniu, o prieš grąžindami reikšmę, jos kūnas taip pat atlieka kai kuriuos veiksmus (pagal nurodytą logiką). Funkcijos taip pat priima parametrus, kad būtų galima paleisti. Funkcijas galima vadinti užklausų viduje. Kai funkcija vadinama SELECT užklausos viduje, ji taikoma kiekvienai SELECT užklausos rezultatų rinkinio eilutei. Yra kelios ORACLE funkcijų kategorijos. Jie yra,

  • Vienos eilutės funkcijos (grąžina vieną rezultatą kiekvienai užklausos eilutei)

Yra vienos eilutės funkcijų pogrupiai.

  • Skaitinė 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 .: CARDINALITY, SET)
  • Suvestinės funkcijos (Grąžina vieną eilutę, pagrįstą eilučių grupe. Pvz .: AVG, SUM, MAX)
  • Analitinės funkcijos
  • Objekto atskaitos funkcijos
  • Modelio funkcijos
  • Vartotojo apibrėžtos funkcijos

Kuo skiriasi funkcija ir saugoma procedūra??

• Visos funkcijos turi grąžinti reikšmę naudodamos RETURN sakinį. Išsaugotos procedūros negrąžina reikšmių naudodamos RETURN sakinį. RETURN sakinys procedūros metu grąžins savo valdymą skambinančiai programai. OUT parametrai gali būti naudojami norint grąžinti iš saugomų procedūrų reikšmes.

• Funkcijos gali būti iškviečiamos užklausų viduje, tačiau išsaugotos procedūros negali būti naudojamos užklausų viduje.

• Norint sukurti funkciją, reikia įtraukti duomenų atkūrimo tipą, tačiau saugotoje DDL procedūroje jis nėra.