Salvestatud protseduuri ja funktsiooni erinevus

Salvestatud protseduur vs funktsioon
 

Salvestatud protseduurid ja funktsioonid on kahte tüüpi programmeerimisplokid. Mõlemal peavad olema kutsunimed. Neid kutsunimesid kutsutakse neile teises programmeerimisplokis, nagu protseduurifunktsioonid ja -paketid või SQL-päringud. Mõlemad objektitüübid aktsepteerivad parameetreid ja täidavad ülesannet nende objektide taga. See on süntaks (ORACLE-is) salvestatud protseduuri loomiseks,

 protseduuri protseduuri nime loomine või asendamine (parameetrid)

 kui

 alustada

     avaldused;

 erand

     erand_käitlemine

 lõpp;

Ja siin on funktsiooni loomise süntaks (ORACLE-is),

loo või asenda funktsioon function_name (parameetrid)

return return_datatype

kui

alustada

avaldused;

return return_value / muutuja;

erand;

erand_käitlemine;

lõpp;

Salvestatud protseduurid

Nagu eespool mainitud, nimetatakse salvestatud protseduure programmeerimisplokkideks. Nad aktsepteerivad parameetreid kasutaja sisendina ja töötlevad vastavalt protseduuri taga olevale loogikale ning annavad tulemuse (või teevad konkreetse toimingu). Need parameetrid võivad olla IN, OUT ja INOUT tüübid. Protseduuride korpuses võivad olla muutuvad deklaratsioonid, muutuvad määramised, juhtimisavaldused, silmused, SQL päringud ja muud funktsioonid / protseduuri- / pakettkõned.

Funktsioonid

Funktsioone nimetatakse ka programmeerimisplokkideks, mis peavad väärtuse RETURN abil tagastama ja enne väärtuse tagastamist teeb keha ka mõned toimingud (vastavalt antud loogikale). Funktsioonid aktsepteerivad ka parameetreid käitamiseks. Funktsioone saab päringute sees nimetada. Kui funktsiooni kutsutakse SELECT-päringu sees, kehtib see SELECT-päringu tulemuskomplekti iga rea ​​jaoks. ORACLE-funktsioone on mitut kategooriat. Nemad on,

  • Ühe rea funktsioonid (tagastab päringu iga rea ​​jaoks ühe tulemuse)

Ühe rea funktsioonidel on alamkategooriad.

  • Numbriline funktsioon (nt: ABS, SIN, COS)
  • Märkide funktsioon (nt CONCAT, INITCAP)
  • Kuupäeva ja kellaaja funktsioon (nt: LAST_DAY, NEXT_DAY)
  • Konversioonifunktsioonid (nt: TO_CHAR, TO_DATE)
  • Kogumisfunktsioon (nt: CARDINALITY, SET)
  • Agregeeritud funktsioonid (Tagastab ühe rea, mis põhineb ridade rühmal. Näide: AVG, SUM, MAX)
  • Analüütilised funktsioonid
  • Objekti viitefunktsioonid
  • Mudeli funktsioonid
  • Kasutaja määratletud funktsioonid

Mis vahe on funktsioonil ja salvestatud protseduuril??

• Kõik funktsioonid peavad väärtuse RETURN abil tagastama. Salvestatud protseduurid ei tagasta väärtusi, kasutades käsku RETURN. Protseduuri sees olev RETURN-i avaldus tagastab selle juhtimise kutsuvale programmile. OUT parameetreid saab kasutada salvestatud protseduuride väärtuste tagastamiseks.

• Funktsioone saab päringutes kutsuda, kuid salvestatud protseduure ei saa päringutes kasutada.

• Funktsiooni loomiseks tuleb lisada andmetüüp RETURN, kuid salvestatud protseduuri DDL puhul see pole.