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

Cuprins:

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

Video: Diferența dintre procedura stocată și funcție

Video: Diferența dintre procedura stocată și funcție
Video: Gravitația 2024, Noiembrie
Anonim

Procedură stocată vs. funcție

Procedurile și funcțiile stocate sunt două tipuri de blocuri de programare. Amândoi trebuie să aibă nume de apel. Aceste nume de apelare sunt folosite pentru a le apela în interiorul unui alt bloc de programare, cum ar fi funcțiile procedurilor și pachetele sau interogările SQL. Ambele tipuri de obiecte acceptă parametri și efectuează sarcina din spatele acestor obiecte. Aceasta este sintaxa (în ORACLE) pentru a crea o procedură stocată, creați sau înlocuiți procedura nume procedura (parametri)

as

begin

declarații;

excepție

exception_handling

end;

Și aici este sintaxa pentru a crea o funcție (în ORACLE), creați sau înlocuiți funcția nume_funcție (parametri)

retur return_datatype

as

begin

declarații;

return return_value/variable;

excepție;

exception_handling;

end;

Proceduri stocate

După cum sa menționat mai sus, procedurile stocate sunt denumite blocuri de programare. Acceptă parametrii ca intrare de utilizator și procesează conform logicii din spatele procedurii și dau rezultatul (sau efectuează o anumită acțiune). Acești parametri pot fi de tip IN, OUT și INOUT. Declarațiile de variabile, atribuirile de variabile, instrucțiunile de control, buclele, interogările SQL și alte apeluri de funcții/procedură/pachet pot fi în corpul procedurilor.

Funcții

Funcțiile sunt, de asemenea, numite blocuri de programare, care trebuie să returneze o valoare folosind instrucțiunea RETURN și înainte de a returna o valoare, corpul său efectuează și unele acțiuni (conform logicii date). Funcțiile acceptă și parametri pentru a rula. Funcțiile pot fi apelate în interiorul interogărilor. Când o funcție este apelată în interiorul unei interogări SELECT, aceasta se aplică fiecărui rând din setul de rezultate al interogării SELECT. Există mai multe categorii de funcții ORACLE. Sunt,

Funcții cu un singur rând (afișează un singur rezultat pentru fiecare rând al interogării)

Există subcategorii de funcții pe un singur rând.

  • Funcție numerică (de ex.: ABS, SIN, COS)
  • Funcția de caractere (Ex: CONCAT, INITCAP)
  • Funcția dată și oră (Ex: LAST_DAY, NEXT_DAY)
  • Funcții de conversie (Ex: TO_CHAR, TO_DATE)
  • Funcția de colectare (Ex: CARDINALITY, SET)
  • Funcții agregate (afișează un singur rând, bazat pe un grup de rânduri. De exemplu: AVG, SUM, MAX)
  • Funcții analitice
  • Funcții de referință la obiect
  • Funcții model
  • Funcții definite de utilizator

Care este diferența dintre funcție și procedura stocată?

• Toate funcțiile trebuie să returneze o valoare folosind instrucțiunea RETURN. Procedurile stocate nu returnează valori folosind instrucțiunea RETURN. Declarația RETURN din cadrul unei proceduri va returna controlul acesteia programului apelant. Parametrii OUT pot fi utilizați pentru a returna valori din procedurile stocate.

• Funcțiile pot fi apelate în interiorul interogărilor, dar procedurile stocate nu pot fi utilizate în interiorul interogărilor.

• Tipul de date RETURN trebuie inclus pentru a crea o funcție, dar în procedura stocată DDL, nu este.

Recomandat: