pl sql package oracle pl sql package tutorial with examples
Dozviete sa viac o balíku PL SQL, jeho výhodách, špecifikáciách a štruktúre:
V tomto článku budeme pokračovať s Séria PL / SQL . V PL SQL záznamy tejto príručke sme sa dozvedeli niečo o záznamoch a typoch záznamov s príkladmi programovania.
Tu preskúmame balíčky v PL / SQL a niektoré dôležité vlastnosti balíkov. Tiež si prediskutujeme niektoré základné operácie s nimi.
Budeme tiež diskutovať o balíkoch dbms_ouput v PL / SQL a ich podprogramoch.
Začnime s poznatkami !!
Čo sa dozviete:
PL SQL balík
Balík je objekt vo forme schémy, ktorá oddeľuje logicky spojené položky, typy a podprogramy v PL / SQL. Balenie sa skladá z dvoch častí: Špecifikácia balenia a Telo obalu alebo definícia .
Špecifikácia balíka je ako rozhranie k aplikácii a slúži na deklaráciu premenných, konštánt, typov, výnimiek, kurzorov a podprogramov. Telo balíka implementuje podprogramy a kurzory deklarované v špecifikácii balíka.
Môžeme aktualizovať, odladiť alebo zmeniť telo balíka bez toho, aby sme sa dotkli špecifikácie balíka (nazýva sa to tiež rozhranie k balíku).
Výhody balíka PL / SQL
Výhody balíka sú uvedené nižšie:
- Nášmu kódu dáva modularitu.
- Pomáha to ľahko navrhnúť aplikáciu.
- Balík PLSQL pomáha skryť informácie pomocou verejných a súkromných položiek, dátových typov a podprogramov.
- balík umožňuje udržiavať informácie o všetkých transakciách bez nutnosti ich ukladania do databázy.
- Balíky pomáhajú zlepšovať výkonnosť spustenia.
Špecifikácia balenia
Špecifikácia balíka je ako rozhranie k balíku. Stará sa o deklaráciu premenných, konštánt, typov, výnimiek, kurzorov a podprogramov. Má teda všetky podrobnosti o obsahu balíka, ale nemá implementáciu podprogramov.
Objekty v špecifikácii balíka sú verejné objekty. Všetky podprogramy implementované v tele balíka sú súkromné objekty. V rámci špecifikácie balíka môžeme deklarovať viac globálnych premenných, funkcií alebo postupov.
Špecifikácia balíka je nezávislá entita a môže existovať bez tela balíka.
Implementácia kódu:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Výstup z vyššie uvedeného kódu:
Telo balenia
Telo balíka obsahuje implementáciu kurzorov a podprogramov deklarovaných v špecifikácii balíka. Je potrebné pamätať na to, že k podprogramom implementovaným v tele balíka je možné pristupovať mimo balíka za predpokladu, že sú deklarované v špecifikácii balíka.
Podprogram deklarovaný v špecifikácii a tele balíka musí byť presný. Toto porovnanie sa vykonáva podľa ich hlavičiek podľa jednotlivých tokenov. V prípade, že sa nezhodujú, PL / SQL vyvolá výnimku.
najpopulárnejšie nástroje na analýzu veľkých dát
Telo balíka môže obsahovať ďalšie podprogramy, ktoré nie sú deklarované v špecifikácii balíka. V takom prípade sú súkromné iba pre tento obal. VYTVORTE TELO BALENIA je kľúčové slovo použité na vytvorenie tela balíka.
Vezmime si príklad na vytvorenie tela balíka pre ostatné balíček.
Implementácia kódu s telom balíka.
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 vyššie uvedeného kódu by mal byť.
Pozrite si Prvky balenia
Pretože sme skončili s deklarovaním prvkov v špecifikácii balíka a ich implementáciou do tela balíka, musíme sa na tieto prvky odvolať. Prvky balíka pozostávajú z funkcií, postupov a premenných.
K týmto verejným prvkom balíka je možné získať prístup pomocou názvu balíka, za ktorým nasleduje názov prvku oddelený bodkovou (.) Notáciou.
Syntax:
package_name.element_name;
Implementácia kódovania pre prístup k prvkom:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Výstup z vyššie uvedeného kódu:
Vytvorte balík PL SQL
Ak sa v relácii volá alebo sa na ňu odkazuje, v PL / SQL sa vytvorí nová inštancia tohto balíka. Máme možnosť inicializovať prvky balíka alebo vykonať akékoľvek ďalšie akcie počas vytvárania inštancie pomocou bloku kódu Inicializácia balíka. Toto je spustiteľný blok kódu v tele balíka po inicializácii prvkov balíka.
Syntax vytvorenia balíka:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Package_n je názov balíka.
Preťaženie balíka
V balíku s podobnými názvami môže byť viac podprogramov. Táto funkcia je užitočná, ak chceme mať homogénne parametre s heterogénnymi dátovými typmi. Koncept preťaženia v rámci balíka umožňuje programátorom jasne spomenúť typ akcie, ktorú chcú vykonať.
Implementácia kódovania s preťažením procedúry. (Balíček bol vytvorený):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Výstup z vyššie uvedeného kódu:
Implementácia kódovania s preťažením procedúry. (Telo balíka bolo vytvorené)
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 z vyššie uvedeného kódu:
technické otázky, otázky a odpovede
Implementácia kódovania s preťažením procedúry. (Postup balenia)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Výstup z vyššie uvedeného kódu:
Závislosť balíka PLSQL
Závislosti balíkov v PL / SQL sú uvedené nižšie:
- Špecifikácia balíka je nezávislá identita.
- Telo balenia závisí od špecifikácie balenia.
- Telo balíka je možné zostaviť iba samostatne. Ak je však kompilovaná špecifikácia balíka, potom je potrebné kompilovať znova telo.
- Funkcia alebo postup v tele balíka, ktorý závisí od súkromných prvkov, by sa mal implementovať po deklarácii súkromných prvkov.
Pokyny pre vytvorenie balíka v PL SQL:
- Balík by mal byť napísaný všeobecne, aby ho bolo možné v budúcnosti znova použiť.
- Zabráňte duplicitným vlastnostiam v obale.
- Špecifikácia balenia obsahuje kľúč k správne navrhnutej aplikácii. Pred vytvorením tela balíka vyplňte špecifikáciu balíka.
- Špecifikácia balíka by mala obsahovať iba položky, podprogramy a typy, ktoré musia byť prístupné používateľom balíka. Nemal by mať zbytočné informácie o implementácii.
- Špecifikácia balenia by mala obsahovať obmedzený počet položiek. Ušetrí to čas na opätovnú kompiláciu kódu, pretože zmena špecifikácie balíka vyžaduje, aby PL / SQL znovu skompiloval všetky podprogramy, ktoré odkazujú na balík.
Informácie o balíku v PL / SQL
Všetky príslušné podrobnosti, ako napríklad zdroj balíka, podprogramy a preťažené položky, sa po vytvorení balíka uložia v tabuľkách definícií údajov.
Zoznam tabuliek definícií údajov je nasledovný:
- USER_PROCEDURES: Táto tabuľka obsahuje informácie o podprograme, ako sú preťažené položky, identifikátor_objektu atď. Pre aktuálneho používateľa.
- VŠETKY POSTUPY: Táto tabuľka obsahuje informácie o podprograme ako preťažené položky, object_id atď. Pre všetkých používateľov.
- USER_SOURCE: Táto tabuľka obsahuje informácie o zdroji objektu pre aktuálneho používateľa.
- ALL_SOURCE: Táto tabuľka obsahuje informácie o zdroji objektu pre všetkých používateľov.
- ALL_OBJECT: Táto tabuľka obsahuje informácie o balíku, ako napríklad creation_date, object_id a ďalšie podrobnosti o objekte pre všetkých používateľov.
Výstup DBMS v PL / SQL
Balík DBMS_OUTPUT umožňuje zobrazenie výstupu PL / SQL vytvoreného z podprogramov a blokov kódu. To nám pomáha ladiť, testovať náš kód a odosielať správy.
The put_line postup produkuje výstupné dáta do medzipamäte. Informácie sa zobrazujú pomocou get_line alebo nakonfigurovaním SERVEROUTPUT ON v SQL * Plus.
Balík DBMS_OUTPUT obsahuje nasledujúce podprogramy:
Sl č. | názov | Účely |
---|---|---|
jeden | DBMS_OUTPUT.DISABLE | Obmedzuje výstup správy. |
dva | DBMS_OUTPUT.ENABLE (vyrovnávacia pamäť v predvolenom nastavení INTEGER 20000) | Umožňuje výstup správy. Ak je vyrovnávacia pamäť nastavená na hodnotu NULL, predstavuje neobmedzenú veľkosť vyrovnávacej pamäte. |
3 | DBMS_OUTPUT.GET_LINE (riadok OUT VARCHAR, stav OUT NUMBER) | Načíta informácie uložené do medzipamäte v jednom riadku. |
4 | DBMS_OUTPUT.NEW_LINE | Ukončí značku konca riadku. |
5 | DBMS_OUTPUT.PUT (položka V VARCHAR) | Vloží neúplný riadok do medzipamäte. |
6 | DBMS_OUTPUT.PUT_LINE (položka V VARCHAR) | Vloží celý riadok do medzipamäte. |
Implementácia kódu:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Výstup z vyššie uvedeného kódu:
Často kladené otázky a odpovede
Otázka 1) Čo je balík v PL SQL?
Odpoveď: Balík je objektová schéma, ktorá kategorizuje logicky súvisiace premenné, konštanty, kurzory, podprogramy a typy.
Otázka 2) Aké sú výhody balíkov PL SQL?
Odpoveď: Výhody balíka sú uvedené nižšie:
- S balíkmi sa stáva ľahké navrhovanie aplikácií.
- Pomocou balíkov môžeme dosiahnuť zapuzdrenie.
- Balíky pomáhajú dosiahnuť lepší výkon z hľadiska rýchlosti vykonávania.
- Kód sa stáva modulárnejším s balíčkami.
Otázka č. 3) Môžeme vytvoriť telo balíka bez špecifikácie?
Odpoveď: Áno, môžeme vytvoriť telo balíka bez špecifikácie balíka.
Otázka č. 4) Čo je Dbms_output Put_line v PL SQL?
Odpoveď: Dbms_output put_line je procedúra v Oracle, ktorá nám umožňuje zapisovať informácie do plochého súboru alebo na výstupnú obrazovku PL / SQL.
Otázka č. 5) Čo je Dbms_output?
Odpoveď: Dbms_output je predvolený balík, ktorý nám umožňuje zobraziť ladiace informácie, výstup a odosielať správy z podprogramov, spúšťačov, balíkov a bloku kódu PL / SQL
Windows 10 WiFi predvolená brána nie je k dispozícii
Záver
V tomto výučbe sme podrobne diskutovali o niekoľkých základných konceptoch týkajúcich sa balíkov PL SQL, ktoré sú nevyhnutné na ich použitie v skutočných aplikáciách.
Prebrali sme nasledujúce témy uvedené nižšie:
- Balíky a ich štruktúra.
- Rôzne vlastnosti balíkov.
- Výstup DBMS.
- Podprogramy balíka DBMS_OUTPUT.
<< PREV Tutorial | ĎALŠÍ výukový program >>
Odporúčané čítanie
- Výukový program PL SQL pre začiatočníkov s príkladmi Čo je to PL / SQL
- Výukový program pre záznamy PL SQL s príkladmi
- Kurzor a reťazce PL SQL: Výukový program s príkladmi kódu
- Výukový program pre Python DateTime s príkladmi
- Vývoj databázových aplikácií Oracle: Oracle SQL a PL / SQL
- Najlepšie otázky týkajúce sa rozhovorov Oracle: Otázky Oracle Basic, SQL, PL / SQL
- Rozdiel medzi serverom SQL Vs MySQL Vs SQL Server (s príkladmi)
- Najlepšie otázky týkajúce sa rozhovorov s formulármi a správami Oracle