Diferența dintre procedura stocată și funcția

Anonim

Procedura stocată vs Funcția

Procedurile și funcțiile stocate sunt două tipuri de blocuri de programare. Ambii trebuie să aibă nume de apel. Aceste nume de apeluri sunt folosite pentru a le numi în interiorul altui bloc de programare, cum ar fi funcțiile procedurilor și pachetele sau interogările SQL. Ambele tipuri de obiecte acceptă parametrii și execută sarcina din spatele acelor obiecte. Aceasta este sintaxa (în ORACLE) pentru a crea o procedură memorată,

creați sau înlocuiți procedura procedurename (parametrii)

ca

începeți

declarații;

exception_handling

final excepție;

Și aici este sintaxa pentru a crea o funcție (în ORACLE),

-

creați sau înlocuiți funcția nume_funcție (parametrii)

întoarceți return_datatype

ca

încep

declarații;

return return_value / variable;

excepție;

exception_handling;

final;

Proceduri stocate

După cum sa menționat mai sus, procedurile stocate sunt numite blocuri de programare. Ei acceptă parametrii ca intrări și procese de utilizator în funcție de logica din spatele procedurii și dau rezultatul (sau efectuează o acțiune specifică). Acești parametri pot fi tipurile IN, OUT și INOUT. Declarațiile variabile, asignările variabilelor, instrucțiunile de control, buclele, interogările SQL și alte apeluri de funcții / proceduri / pachete pot fi în interiorul procedurilor.

Funcțiile

Funcțiile sunt, de asemenea, numite blocuri de programare, care trebuie să returneze o valoare utilizând instrucțiunea RETURN și înainte de a reveni la o valoare, corpul său efectuează și unele acțiuni (în funcție de logica dată). Funcțiile acceptă și acceptarea parametrilor. Funcțiile pot fi chemați în interiorul interogărilor. Atunci când o funcție este chemată într-o interogare SELECT, ea se aplică fiecărui rând din setul de rezultate al interogării SELECT. Există mai multe categorii de funcții ORACLE. Ele sunt,

  • Funcții cu un rând (returnează un singur rezultat pentru fiecare rând al interogării)

Există subcategorii ale unei singure rânduri.

  • Funcție numerică (Ex: LAST_DAY, NEXT_DAY)
  • Funcții de conversie (ex.: TO_CHAR, TO_DATE)
  • Funcție numerică (ex.: CONCAT, INITCAP))
  • Funcția de colectare (Ex: CARDINALITY, SET)
  • Funcții agregate (Returnează un singur rând, bazat pe un grup de rânduri Ex: AVG, SUM, MAX)
  • Funcțiile modelului
  • Funcțiile definite de utilizator
  • Care este diferența dintre funcție și procedură stocată?
  • • Toate funcțiile trebuie să returneze o valoare utilizând instrucțiunea RETURN. Procedurile memorate nu returnează valorile utilizând instrucțiunea RETURN. RETURN declarația în cadrul unei proceduri va reveni controlul său la programul de apel. Parametrii OUT pot fi utilizați pentru a returna valorile din procedurile memorate.

• Funcțiile pot fi numite în interogări, însă procedurile stocate nu pot fi folosite în interogări.

• Trebuie introdus tipul de date RETURN pentru a crea o funcție, dar în procedură stocată DDL, nu este.