Rozdiel medzi uloženou procedúrou a funkciou

Obsah:

Rozdiel medzi uloženou procedúrou a funkciou
Rozdiel medzi uloženou procedúrou a funkciou

Video: Rozdiel medzi uloženou procedúrou a funkciou

Video: Rozdiel medzi uloženou procedúrou a funkciou
Video: Gravitační síla | 1/5 Gravitace | Fyzika | Onlineschool.cz 2024, Júl
Anonim

Uložená procedúra verzus funkcia

Uložené procedúry a funkcie sú dva typy programovacích blokov. Obaja musia mať volajúce mená. Tieto volajúce mená sa používajú na ich volanie v rámci iného programovacieho bloku, ako sú funkcie procedúr a balíky alebo dotazy SQL. Oba tieto typy objektov akceptujú parametre a vykonávajú úlohu za týmito objektmi. Toto je syntax (v ORACLE) na vytvorenie uloženej procedúry, vytvoriť alebo nahradiť procedúru názov procedúry (parametre)

as

begin

statements;

výnimka

exception_handling

end;

A tu je syntax na vytvorenie funkcie (v ORACLE), vytvoriť alebo nahradiť funkciu názov_funkcie (parametre)

return return_datatype

as

begin

statements;

return return_value/variable;

exception;

exception_handling;

end;

Uložené procedúry

Ako je uvedené vyššie, uložené procedúry sa nazývajú programovacie bloky. Prijímajú parametre ako vstup používateľa a spracovávajú podľa logiky postupu a poskytujú výsledok (alebo vykonávajú špecifickú akciu). Tieto parametre môžu byť typu IN, OUT a INOUT. Deklarácie premenných, priradenia premenných, riadiace príkazy, cykly, SQL dotazy a ďalšie volania funkcií/postupov/balíkov môžu byť súčasťou tela procedúr.

Funkcie

Funkcie sa nazývajú aj programovacie bloky, ktoré musia vrátiť hodnotu príkazom RETURN a predtým, ako vráti hodnotu, vykoná aj jeho telo nejaké akcie (podľa danej logiky). Funkcie tiež akceptujú parametre na spustenie. V rámci dotazov je možné volať funkcie. Keď je funkcia volaná v rámci dotazu SELECT, vzťahuje sa na každý riadok sady výsledkov dotazu SELECT. Existuje niekoľko kategórií funkcií ORACLE. Sú to

Funkcie s jedným riadkom (vracia jeden výsledok pre každý riadok dopytu)

Existujú podkategórie funkcií s jedným riadkom.

  • Numerická funkcia (napr.: ABS, SIN, COS)
  • Funkcia znakov (napr.: CONCAT, INITCAP)
  • Funkcia dátumu a času (napr.: LAST_DAY, NEXT_DAY)
  • Funkcie konverzie (napr. TO_CHAR, TO_DATE)
  • Funkcia zberu (napr.: CARDINALITY, SET)
  • Agregované funkcie (Vráti jeden riadok na základe skupiny riadkov. Príklad: AVG, SUM, MAX)
  • Analytické funkcie
  • Funkcie referencie objektu
  • Funkcie modelu
  • Funkcie definované používateľom

Aký je rozdiel medzi funkciou a uloženou procedúrou?

• Všetky funkcie musia vrátiť hodnotu pomocou príkazu RETURN. Uložené procedúry nevracajú hodnoty pomocou príkazu RETURN. Príkaz RETURN vo vnútri procedúry vráti svoju kontrolu volajúcemu programu. Parametre OUT možno použiť na vrátenie hodnôt z uložených procedúr.

• Funkcie možno volať vo vnútri dotazov, ale uložené procedúry nie je možné použiť vo vnútri dotazov.

• Na vytvorenie funkcie musí byť zahrnutý dátový typ RETURN, ale v uloženej procedúre DDL to tak nie je.

Odporúča: