pl sql package oracle pl sql package tutorial with examples
Další informace o balíčku PL SQL, jeho výhodách, specifikacích a struktuře:
V tomto článku budeme pokračovat s Série PL / SQL . V PL SQL záznamy tutorial, jsme se dozvěděli o záznamy a typy záznamů s příklady programování.
Zde prozkoumáme balíčky v PL / SQL a některé důležité funkce balíčků. Také probereme některé základní operace s nimi.
Budeme také diskutovat o balíčcích dbms_ouput v PL / SQL a jeho podprogramech.
Začněme s učením !!
Co se naučíte:
PL SQL balíček
Balíček je objekt ve formě schématu, který odděluje logicky spojené položky, typy a podprogramy v PL / SQL. Balíček se skládá ze dvou částí: Specifikace balení a Tělo nebo definice balíčku .
Specifikace balíčku je jako rozhraní aplikace a slouží k deklaraci proměnných, konstant, typů, výjimek, kurzorů a podprogramů. Tělo balíčku implementuje podprogramy a kurzory deklarované ve specifikaci balíčku.
Můžeme aktualizovat, ladit nebo změnit tělo balíčku, aniž bychom se dotkli specifikace balíčku (nazývaného také rozhraní k balíčku).
Výhody balíčku PL / SQL
Výhody balíčku jsou uvedeny níže:
- Dodává našemu kódu modularitu.
- Pomáhá snadno navrhnout aplikaci.
- Balíček PLSQL pomáhá skrýt informace pomocí veřejných a soukromých položek, datových typů a podprogramů.
- balíček umožňuje udržovat informace o všech transakcích, aniž byste je museli ukládat do databáze.
- Balíčky pomáhají zlepšit výkon při provádění.
Specifikace balení
Specifikace balíčku je jako rozhraní k balíčku. Postará se o deklaraci proměnných, konstant, typů, výjimek, kurzorů a podprogramů. Má tedy všechny podrobnosti o obsahu balíčku, ale nemá implementaci podprogramů.
Objekty uvnitř specifikace balíčku jsou veřejné objekty. Všechny podprogramy implementované v těle balíčku jsou soukromé objekty. V rámci specifikace balíčku můžeme deklarovat více globálních proměnných, funkcí nebo postupů.
Specifikace balíčku je nezávislá entita a může existovat bez těla balíčku.
Implementace kódu:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Výstup výše uvedeného kódu:
Tělo balení
Tělo balíčku obsahuje implementaci kurzorů a podprogramů deklarovaných ve specifikaci balíčku. Je třeba si uvědomit, že k podprogramům implementovaným v těle balíčku lze přistupovat mimo balíček za předpokladu, že jsou deklarovány ve specifikaci balíčku.
Podprogram deklarovaný ve specifikaci a těle balíčku musí být přesný. Toto porovnání se provádí token po tokenu jejich hlaviček. V případě, že se neshodují, PL / SQL vyvolá výjimku.
nejlepší bezplatný software pro zálohování obrázků 2017
Tělo balíčku může obsahovat další podprogramy, které nejsou deklarovány ve specifikaci balíčku. V takovém případě jsou soukromé pouze k tomuto tělu balíčku. VYTVOŘTE SADU BALENÍ je klíčové slovo použité k vytvoření těla balíčku.
Vezměme si příklad vytvoření těla balíčku pro ostatní balík.
Dotazy a odpovědi na podporu stolních počítačů pro úroveň l1
Implementace kódu s tělem balíčku.
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
Výstup z výše uvedeného kódu by měl být.
Viz Prvky balíčku
Protože jsme skončili s deklarováním prvků ve specifikaci balíčku a jejich implementací do těla balíčku, musíme na tyto prvky odkazovat. Prvky balíčku se skládají z funkcí, postupů a proměnných.
K těmto veřejným prvkům balíčku lze přistupovat podle názvu balíčku následovaného názvem prvku odděleným tečkou (.).
Syntax:
package_name.element_name;
Implementace kódování pro přístup k prvkům:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Výstup výše uvedeného kódu:
Vytvořte balíček PL SQL
Pokud je balíček v relaci volán nebo odkazován, v PL / SQL se vytvoří nová instance tohoto balíčku. Máme možnost inicializovat prvky balíčku nebo provádět jakékoli jiné akce během vytváření instance pomocí bloku kódu Inicializace balíčku. Toto je spustitelný blok kódu v těle balíčku po inicializaci prvků balíčku.
Syntaxe vytvoření balíčku:
CREATE [OR REPLACE] PACKAGE BODY IS BEGIN END
Zde je package_n název balíčku.
Přetížení balíčku
V balíčku, který má podobné názvy, může být více podprogramů. Tato funkce je užitečná, pokud chceme mít homogenní parametry s heterogenními datovými typy. Koncept přetížení v balíčku umožňuje programátorům jasně uvést typ akce, kterou chtějí provést.
Implementace kódování s přetížením procedury. (Balíček vytvořen):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Výstup výše uvedeného kódu:
Implementace kódování s přetížením procedury. (Tělo balíčku vytvořeno)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
Výstup výše uvedeného kódu:
Implementace kódování s přetížením procedury. (Odkaz na postup balení)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Výstup výše uvedeného kódu:
Závislost balíčku PLSQL
Závislosti balíků v PL / SQL jsou uvedeny níže:
- Specifikace balíčku je nezávislá identita.
- Tělo balíčku závisí na specifikaci balíčku.
- Tělo balíčku lze sestavit pouze samostatně. Pokud je však kompilována specifikace balíčku, je třeba znovu kompilovat tělo.
- Funkce nebo procedura uvnitř těla balíčku, která závisí na soukromých prvcích, by měla být implementována po deklaraci soukromých prvků.
Pokyny pro vytvoření balíčku v PL SQL:
- Balíček by měl být napsán obecně, aby jej bylo možné v budoucnu znovu použít.
- Vyvarujte se duplicitních charakteristik v balíčku.
- Specifikace balíčku obsahuje klíč ke správně navržené aplikaci. Před vytvořením těla balíčku vyplňte specifikaci balíčku.
- Specifikace balíčku by měla obsahovat pouze položky, podprogramy a typy, které musí být přístupné uživatelům balíčku. Neměl by mít zbytečné informace o implementaci.
- Specifikace balíčku by měla obsahovat omezený počet položek. Šetří čas pro překompilování kódu, protože změna specifikace balíčku vyžaduje, aby PL / SQL překompiloval všechny podprogramy, které odkazují na balíček.
Informace o balíčku v PL / SQL
Všechny relevantní podrobnosti, jako je zdroj balíčku, podprogramy a přetížené položky, jsou po vytvoření balíčku uloženy v tabulkách definic dat.
Seznam tabulek definic dat je následující:
- POUŽITELSKÉ POSTUPY: Tato tabulka obsahuje informace o podprogramu, jako jsou přetížené položky, object_id atd. Pro aktuálního uživatele.
- VŠECHNY POSTUPY: Tato tabulka obsahuje informace o podprogramu, jako jsou přetížené položky, object_id atd. Pro všechny uživatele.
- USER_SOURCE: Tato tabulka obsahuje informace o zdroji objektu pro aktuálního uživatele.
- ALL_SOURCE: Tato tabulka obsahuje informace o zdroji objektu pro všechny uživatele.
- ALL_OBJECT: Tato tabulka obsahuje informace o balíčku, jako je creation_date, object_id a další podrobnosti o objektu pro všechny uživatele.
Výstup DBMS v PL / SQL
Balíček DBMS_OUTPUT umožňuje zobrazení výstupu PL / SQL vytvořeného z podprogramů a bloků kódu. To nám pomáhá ladit, testovat náš kód a odesílat zprávy.
The put_line postup vytvoří výstupní data do vyrovnávací paměti. Informace se zobrazují pomocí get_line nebo konfigurací SERVEROUTPUT ON v SQL * Plus.
Balíček DBMS_OUTPUT obsahuje následující podprogramy:
Sl č. | název | Účely |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Omezuje výstup zprávy. |
dva | DBMS_OUTPUT.ENABLE (buffer IN INTEGER DEFAULT 20000) | Umožňuje výstup zprávy. Pokud je vyrovnávací paměť nastavena na NULL, představuje neomezenou velikost vyrovnávací paměti. |
3 | DBMS_OUTPUT.GET_LINE (řádek OUT VARCHAR, stav OUT NUMBER) | Načte informace v mezipaměti v rámci jednoho řádku. |
4 | DBMS_OUTPUT.NEW_LINE | Ukončí značku konce řádku. |
5 | DBMS_OUTPUT.PUT (položka V VARCHAR) | Vloží neúplný řádek do vyrovnávací paměti. |
6 | DBMS_OUTPUT.PUT_LINE (položka V VARCHAR) | Vloží do vyrovnávací paměti celý řádek. |
Implementace kódu:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Výstup výše uvedeného kódu:
Často kladené otázky a odpovědi
Otázka č. 1) Co je balíček v PL SQL?
Odpovědět: Balíček je schéma objektu, které kategorizuje logicky související proměnné, konstanty, kurzory, podprogramy a typy.
Otázka 2) Jaké jsou výhody balíků PL SQL?
Odpověď: Výhody balíčku jsou uvedeny níže:
- S balíčky se stává snadné navrhování aplikací.
- S balíčky můžeme dosáhnout zapouzdření.
- Balíčky pomáhají získat lepší výkon, pokud jde o rychlost provádění.
- Kód se stává více modulární s balíčky.
Otázka č. 3) Můžeme vytvořit tělo balíčku bez specifikace?
Odpovědět: Ano, můžeme vytvořit tělo balíčku bez specifikace balíčku.
Otázka č. 4) Co je Dbms_output Put_line v PL SQL?
Odpovědět: Dbms_output put_line je procedura v Oracle, která nám umožňuje zapisovat informace do plochého souboru nebo na výstupní obrazovku PL / SQL.
Otázka č. 5) Co je Dbms_output?
Odpovědět: Dbms_output je výchozí balíček, který nám umožňuje zobrazit informace o ladění, výstup a odesílat zprávy z podprogramů, spouštěčů, balíků a bloku kódu PL / SQL
výchozí heslo routeru a seznam uživatelských jmen
Závěr
V tomto tutoriálu jsme podrobně diskutovali o některých základních pojmech o PL SQL Packages, které jsou nezbytné pro jejich použití ve skutečných aplikacích.
Pokryli jsme následující témata uvedená níže:
- Balíčky a jejich struktura.
- Různé funkce balíčků.
- Výstup DBMS.
- Podprogramy balíčku DBMS_OUTPUT.
<< PREV Tutorial | DALŠÍ výukový program >>
Doporučené čtení
- Výukový program PL SQL pro začátečníky s příklady | Co je to PL / SQL
- Výukový program pro záznamy PL SQL s příklady
- Kurzor a řetězce PL SQL: Výukový program s příklady kódu
- Výukový program Python DateTime s příklady
- Vývoj databázových aplikací Oracle: Oracle SQL & PL / SQL
- Nejlepší dotazy k rozhovoru Oracle: Otázky Oracle Basic, SQL, PL / SQL
- Rozdíl mezi SQL Vs MySQL Vs SQL Server (s příklady)
- Nejlepší dotazy a odpovědi na dotazníky společnosti Oracle Forms and Reports