Zobrazit vs. uložená procedura
Pohledy a uložené procedury jsou dva typy databázových objektů. Pohledy jsou druhem uložených dotazů, které shromažďují data z jedné nebo více tabulek. Zde je syntaxe pro vytvoření pohledu
vytvořit nebo nahradit viewname
as
select_statement;
Uložená procedura je předkompilovaná sada příkazů SQL, která je uložena na databázovém serveru. Každá uložená procedura má volající název, který se používá k jejich volání uvnitř jiných balíčků, procedur a funkcí. Toto je syntaxe (v ORACLE) pro vytvoření uložené procedury, vytvořit nebo nahradit proceduru název procedury (parametry)
is
begin
statements;
výjimka
exception_handling
end;
Zobrazit
A View funguje jako virtuální stůl. Uvnitř těla skrývá příkaz select. Tento příkaz select může být velmi složitý a přebírá data z několika tabulek a pohledů. Jinými slovy tedy pohled je pojmenovaný příkaz select, který je uložen v databázi. Ke skrytí logiky za vztahy tabulek před koncovými uživateli lze použít pohled. Vzhledem k tomu, že pohled je výsledkem uloženého dotazu, neuchovává žádná data. Shromažďuje data ze základních tabulek a pořadů. Pohledy hrají důležitou roli také v zabezpečení dat. Když vlastník tabulky potřebuje koncovým uživatelům zobrazit pouze sadu dat, je vytvoření pohledu dobrým řešením. Pohledy lze rozdělit do dvou kategorií
- Aktualizovatelné pohledy (zobrazení, která lze použít pro INSERT, UPDATE a DELETE)
- Neaktualizovatelné pohledy (zobrazení, která nelze použít pro INSERT, UPDATE a DELETE)
Aktualizovatelné pohledy nemohou zahrnovat následující položky, Nastavit operátory (INTERECT, MINUS, UNION, UNION ALL)
DISTINCT
Skupinové agregační funkce (AVG, COUNT, MAX, MIN, SUM atd.)
GROUP BY Clause
OBJEDNAT PODLE klauzule
SPOJIT PODLE klauzule
ZAČÍT DOložkou
Výraz kolekce ve vybraném seznamu
Poddotaz ve vybraném seznamu
Připojit se k dotazu
Uložená procedura
Uložené procedury se nazývají programovací bloky. Musí mít jméno. Uložené procedury 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). V těle procedur mohou být 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ů.
Jaký je rozdíl mezi zobrazením a uloženou procedurou?
Podívejme se na rozdíly mezi těmito dvěma.
• Pohledy fungují jako virtuální tabulky. Lze je použít přímo při uzavření SQL dotazů (vyberte), ale procedury nelze použít při uzavření dotazů.
• Pohledy mají jako tělo pouze příkaz select, ale procedury mohou mít jako tělo deklarace proměnných, přiřazení proměnných, řídicí příkazy, cykly, dotazy SQL a další volání funkcí/postupů/balíčků.
• Procedura přijímá parametry ke spuštění, ale pohledy nechtějí, aby se parametry spouštěly.
• Typy záznamů lze vytvořit z pohledů pomocí % ROWTYPE, ale pomocí procedur nelze typy záznamů vytvořit.
• Tipy SQL lze použít uvnitř příkazu view select k optimalizaci plánu provádění, ale tipy SQL nelze použít v uložených procedurách.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK a DEBUG lze udělit pro zobrazení, ale u procedur lze udělit pouze EXECUTE a DEBUG.