Pro každého, kdo někdy studoval programovací jazyky jako C, C++ nebo Java, není koncept funkcí nový. Funkce nejsou nic jiného než skupina spustitelných příkazů. Pomocí funkcí se můžete ušetřit opakovaného přepisování stejné programovací logiky. Jak tedy můžeme definovat funkci v Oracle PL/SQL?
Co jsou funkce PL/SQL v databázi Oracle?
V databázi Oracle můžeme definovat funkci PL/SQL jako samostatný podprogram, který je určen k provádění konkrétního dobře definovaného úkolu. Funkce se nazývají PL/SQL blok, což znamená, že mohou být uloženy do databáze jako databázový objekt a mohou být znovu použity. To je také důvod, proč některé knihy označují funkce PL/SQL jako uložené funkce.
Typy funkcí PL/SQL v databázi Oracle
V databázi Oracle jsou dva typy funkcí PL/SQL, tyto jsou
- Funkce pass-by-value a
- Funkce Pass-by-Reference
V databázi Oracle by oba typy funkcí měly vracet nějaké hodnoty a tyto hodnoty by měly být platným datovým typem SQL nebo PL/SQL.
Syntaxe funkcí PL/SQL v databázi Oracle
CREATE [OR REPLACE] FUNCTION function_name (Parameter 1, Parameter 2…) RETURN datatype IS Declare variable, constant etc. BEGIN Executable Statements Return (Return Value); END;
O syntaxi funkce PL/SQL jsem diskutoval řádek po řádku ve výukovém videu na mém kanálu YouTube na stejné téma. Navrhuji, abyste se na tento návod jednou šli podívat.
Způsob provedení funkce
V závislosti na vaší kreativitě a programovacích schopnostech lze funkci PL/SQL volat několika způsoby. Zde jsou některé obecné způsoby volání funkce PL/SQL v databázi Oracle
- Můžete použít nástroj SQL*Plus databáze Oracle k vyvolání funkce PL/SQL, kterou lze volat z PL/SQL jako procedurální příkaz.
- Anonymní blok PL/SQL lze také použít k volání funkce.
- Funkci můžete dokonce volat přímo do příkazu SELECT nebo DML.
Zůstaňte naladěni, každou z těchto metod provádění funkcí PL/SQL probereme v příštím tutoriálu.
Omezení volání funkce
- Funkci, která vrací datový typ SQL, lze použít uvnitř příkazu SQL a funkce PL/SQL, která vrací datový typ PL/SQL, funguje pouze uvnitř bloků PL/SQL. Výjimkou z tohoto pravidla je, že nemůžete volat funkci, která obsahuje operaci DML uvnitř dotazu SQL. Můžete však volat funkci, která provádí operaci DML uvnitř INSERT, UPDATE a DELETE.
- Funkce volaná z příkazu UPDATE nebo DELETE v tabulce nemůže dotazovat (SELECT) ani provádět transakce (DML) ve stejné tabulce.
- Funkce volaná z výrazů SQL nemůže obsahovat příkaz TCL (COMMIT nebo ROLLBACK) ani příkaz DDL (CREATE nebo ALTER).
To je vše pro tento výukový program Úvod do funkcí PL/SQL v databázi Oracle. Nezapomeňte se podívat na další tutoriál, kde na velmi jednoduchém příkladu demonstruji vytvoření funkce PL/SQL.
Nezapomeňte také sdílet tento blog na svých sociálních sítích, protože každý měsíc rozdávám zboží RebellionRider jednomu z náhodně vybraných výherců. Pro další aktualizace mě sledujte na mém Facebooku a Twitteru.
Děkuji za přečtení a přeji hezký den!