Rozdíl mezi uloženou procedurou a funkcí

Obsah:

Rozdíl mezi uloženou procedurou a funkcí
Rozdíl mezi uloženou procedurou a funkcí

Video: Rozdíl mezi uloženou procedurou a funkcí

Video: Rozdíl mezi uloženou procedurou a funkcí
Video: Tíha a tíhová síla | 3/5 Gravitace | Fyzika | Onlineschool.cz 2024, Červenec
Anonim

Uložená procedura vs funkce

Uložené procedury a funkce jsou dva typy programovacích bloků. Oba musí mít volající jména. Tato volající jména se používají k jejich volání uvnitř jiného programovacího bloku, jako jsou funkce procedur a balíčky nebo dotazy SQL. Oba tyto typy objektů přijímají parametry a provádějí úlohu za těmito objekty. Toto je syntaxe (v ORACLE) pro vytvoření uložené procedury, vytvořit nebo nahradit proceduru název procedury (parametry)

as

begin

statements;

výjimka

exception_handling

end;

A zde je syntaxe pro vytvoření funkce (v ORACLE), vytvořit nebo nahradit funkci název_funkce (parametry)

return return_datatype

as

begin

statements;

return return_value/variable;

exception;

exception_handling;

end;

Uložené procedury

Jak bylo uvedeno výše, uložené procedury se nazývají programovací bloky. Přijímají parametry jako uživatelský vstup a zpracovávají podle logiky procedury a poskytují výsledek (nebo provádějí konkrétní akci). Tyto parametry mohou být typu IN, OUT a INOUT. Deklarace proměnných, přiřazení proměnných, řídicí příkazy, smyčky, dotazy SQL a další volání funkcí/postupů/balíčků mohou být uvnitř těla procedur.

Funkce

Funkce se také nazývají programovací bloky, které musí vrátit hodnotu pomocí příkazu RETURN, a než vrátí hodnotu, jeho tělo také provede nějaké akce (podle dané logiky). Funkce také přijímají parametry ke spuštění. Funkce lze volat uvnitř dotazů. Když je funkce volána uvnitř dotazu SELECT, vztahuje se na každý řádek sady výsledků dotazu SELECT. Existuje několik kategorií funkcí ORACLE. Jsou,

Funkce jednoho řádku (vrátí jeden výsledek pro každý řádek dotazu)

Existují podkategorie funkcí jednoho řádku.

  • Číselná funkce (např.: ABS, SIN, COS)
  • Funkce znaků (Příklad: CONCAT, INITCAP)
  • Funkce datum a čas (např.: LAST_DAY, NEXT_DAY)
  • Konverzní funkce (Příklad: TO_CHAR, TO_DATE)
  • Funkce sběru (např.: CARDINALITY, SET)
  • Agregační funkce (Vrátí jeden řádek na základě skupiny řádků. Příklad: AVG, SUM, MAX)
  • Analytické funkce
  • Funkce reference objektu
  • Funkce modelu
  • Uživatelem definované funkce

Jaký je rozdíl mezi funkcí a uloženou procedurou?

• Všechny funkce musí vrátit hodnotu pomocí příkazu RETURN. Uložené procedury nevracejí hodnoty pomocí příkazu RETURN. Příkaz RETURN uvnitř procedury vrátí její řízení volajícímu programu. Parametry OUT lze použít k vrácení hodnot z uložených procedur.

• Funkce lze volat uvnitř dotazů, ale uložené procedury nelze v dotazech použít.

• Datový typ RETURN musí být zahrnut pro vytvoření funkce, ale v uložené proceduře DDL tomu tak není.

Doporučuje: