pl sql package oracle pl sql package tutorial with examples
Meer informatie over PL SQL-pakket, de voordelen, specificaties en structuur:
In dit artikel gaan we verder met PL / SQL-reeks In de PL SQL-records tutorial hebben we geleerd over records en recordtypen met programmeervoorbeelden.
Hier zullen we pakketten in PL / SQL en enkele belangrijke kenmerken van pakketten onderzoeken. We zullen ook enkele van de basishandelingen op hen bespreken.
We zullen ook dbms_ouput-pakketten in PL / SQL en de bijbehorende subprogramma's bespreken.
Laten we beginnen met de lessen !!
Wat je leert:
PL SQL-pakket
Een pakket is een object in de vorm van een schema dat logisch verbonden items, typen en subprogramma's in PL / SQL scheidt. Een pakket bestaat uit twee delen: Pakket specificatie en Pakket body of definitie
De pakketspecificatie is als een interface naar de applicatie en wordt gebruikt om variabelen, constanten, typen, uitzonderingen, cursors en subprogramma's te declareren. De body van een pakket implementeert de subprogramma's en cursors die in de pakketspecificatie zijn gedeclareerd.
We kunnen de body van een pakket bijwerken, debuggen of wijzigen zonder de pakketspecificatie aan te raken (ook wel een interface naar het pakket genoemd).
Voordelen van PL / SQL-pakket
Voordelen van het arrangement zijn hieronder opgesomd:
- Het geeft modulariteit aan onze code.
- Het helpt om de applicatie gemakkelijk te ontwerpen.
- PLSQL-pakket helpt informatie te verbergen met behulp van openbare en privé-items, gegevenstypen en subprogramma's.
- pakket maakt het mogelijk om informatie over alle transacties te behouden zonder dat deze in de database hoeft te worden opgeslagen.
- Pakketten helpen de uitvoeringsprestaties te verbeteren.
Pakketspecificatie
Een pakketspecificatie is als een interface naar het pakket. Het zorgt voor de declaratie van variabelen, constanten, typen, uitzonderingen, cursors en subprogramma's. Het heeft dus alle details over de inhoud van het pakket, maar niet de implementatie van de subprogramma's.
De objecten in een pakketspecificatie zijn openbare objecten. Alle subprogramma's die in de body van een pakket worden geïmplementeerd, zijn privéobjecten. We kunnen meerdere globale variabelen, functies of procedures declareren binnen de pakketspecificatie.
Een pakketspecificatie is een onafhankelijke entiteit en kan bestaan zonder de hoofdtekst van een pakket.
Code implementatie:
De output van de bovenstaande code:
Pakketbehuizing
Het pakket bevat de implementatie van de cursors en subprogramma's die zijn gedeclareerd in de pakketspecificatie. Er moet aan worden herinnerd dat de subprogramma's die in het pakket zijn geïmplementeerd, toegankelijk zijn buiten het pakket, op voorwaarde dat ze zijn gedeclareerd in de pakketspecificatie.
Het subprogramma dat is gedeclareerd in de pakketspecificatie en de body moet exact zijn. Deze vergelijking wordt token-voor-token van hun headers gedaan. In het geval dat ze niet overeenkomen, genereert PL / SQL een uitzondering.
vragen en antwoorden voor prestatietests
De body van het pakket kan andere subprogramma's bevatten die niet in de pakketspecificatie zijn gedeclareerd. In dat geval zijn die alleen privé voor die pakketbody. CREËER PAKKET LICHAAM is het sleutelwoord dat wordt gebruikt voor het maken van een pakkettekst.
Laten we een voorbeeld nemen om de pakketbody voor de de anderen pakket.
Code-implementatie met pakketbody.
informatica powercenter interviewvragen en antwoorden
De uitvoer van de bovenstaande code zou moeten zijn.
Raadpleeg Pakketelementen
Aangezien we klaar zijn met het declareren van de elementen in de pakketspecificatie en ze implementeren in de body van het pakket, moeten we naar deze elementen verwijzen. De pakketelementen bestaan uit de functies, procedures en variabelen.
Deze openbare elementen van het pakket zijn toegankelijk via de pakketnaam gevolgd door de elementnaam gescheiden door de punt (.) -Notatie.
Syntaxis:
Coderingsimplementatie voor toegang tot elementen:
De output van de bovenstaande code:
Maak een PL SQL-pakket
Als een pakket wordt aangeroepen of waarnaar wordt verwezen in een sessie, wordt een nieuw exemplaar van dat pakket gemaakt in PL / SQL. We hebben de optie om de elementen van het pakket te initialiseren of andere acties uit te voeren tijdens het maken van een instantie met het codeblok Pakketinitialisatie. Dit is het uitvoerbare codeblok binnen het pakketlichaam na de initialisatie van de pakketelementen.
Syntaxis van het maken van pakketten:
Hier is pakket_n de naam van het pakket.
Een pakket overbelasten
Er kunnen meerdere subprogramma's in een pakket zijn met vergelijkbare namen. Deze functie is handig als we homogene parameters willen hebben met heterogene gegevenstypen. Het concept van overbelasting binnen het pakket stelt de programmeurs in staat om duidelijk te vermelden welk type actie ze willen uitvoeren.
Coderingsimplementatie met overbelasting van de procedure. (Pakket gemaakt):
De output van de bovenstaande code:
Coderingsimplementatie met overbelasting van de procedure. (Pakket body gemaakt)
De output van de bovenstaande code:
Coderingsimplementatie met overbelasting van de procedure. (Verpakkingsprocedure verwijst)
De output van de bovenstaande code:
Afhankelijkheid van PLSQL-pakket
De pakketafhankelijkheden in PL / SQL worden hieronder vermeld:
- Een pakketspecificatie is een onafhankelijke identiteit.
- De behuizing van het pakket is afhankelijk van de pakketspecificatie.
- Een pakketbody kan alleen afzonderlijk worden samengesteld. Als er echter een pakketspecificatie is gecompileerd, moet de body opnieuw worden gecompileerd.
- Functie of een procedure binnen de body van een pakket die afhankelijk is van de private elementen, moet worden geïmplementeerd na de declaratie van de private elementen.
Richtlijnen voor het maken van een pakket in PL SQL:
- Een pakket moet in generieke termen worden geschreven, zodat ze in de toekomst opnieuw kunnen worden gebruikt.
- Vermijd dubbele kenmerken in een pakket.
- Pakketspecificatie bevat de sleutel tot een correct ontworpen applicatie. Voltooi de pakketspecificatie voordat u de hoofdtekst van het pakket maakt.
- Een pakketspecificatie mag alleen items, subprogramma's en typen bevatten die toegankelijk moeten zijn voor de pakketgebruikers. Het mag geen onnodige implementatie-informatie bevatten.
- De pakketspecificatie moet een beperkt aantal items bevatten. Het zal tijd besparen voor het opnieuw compileren van de code, aangezien een wijziging van de pakketspecificatie PL / SQL vereist om alle subprogramma's die naar het pakket verwijzen opnieuw te compileren.
Pakketinformatie in PL / SQL
Alle relevante details, zoals de bron van het pakket, subprogramma's en overbelaste items, worden opgeslagen in gegevensdefinitietabellen nadat een pakket is gemaakt.
De lijst met gegevensdefinitietabellen is als volgt:
- USER_PROCEDURES: Deze tabel bevat subprogramma-informatie zoals de overbelaste items, object_id, enzovoort voor de huidige gebruiker.
- ALL_PROCEDURES: Deze tabel bevat informatie over het subprogramma, zoals de overbelaste items, object_id, enzovoort voor alle gebruikers.
- USER_SOURCE: Deze tabel bevat de informatie over de objectbron voor de huidige gebruiker.
- ALL_SOURCE: Deze tabel bevat de informatie over de objectbron voor alle gebruikers.
- ALL_OBJECT: Deze tabel bevat de informatie over het pakket, zoals de aanmaakdatum, object_id en andere objectdetails voor alle gebruikers.
DBMS-uitvoer in PL / SQL
DBMS_OUTPUT-pakket maakt de weergave mogelijk van de PL / SQL-uitvoer geproduceerd uit subprogramma's en codeblokken. Dit helpt ons bij het debuggen, testen van onze code en bij het verzenden van berichten.
De put_line procedure produceert de uitvoergegevens naar een buffer. De informatie wordt weergegeven met behulp van de get_line procedure of door SERVEROUTPUT ON te configureren in het SQL * Plus.
DBMS_OUTPUT-pakket bevat de volgende subprogramma's:
Sl nr. | Naam | Doeleinden |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Beperkt de berichtuitvoer. |
twee | DBMS_OUTPUT.ENABLE (buffer IN INTEGER DEFAULT 20000) | Staat de berichtuitvoer toe. Als de buffer is ingesteld op NULL, vertegenwoordigt het een onbeperkte grootte van de buffer. |
3 | DBMS_OUTPUT.GET_LINE (regel OUT VARCHAR, status OUT NUMBER) | Haalt gebufferde informatie op binnen een enkele regel. |
4 | DBMS_OUTPUT.NEW_LINE | Beëindigt een einde-lijnmarkering. |
5 | DBMS_OUTPUT.PUT (item IN VARCHAR) | Zet een onvolledige regel in de buffer. |
6 | DBMS_OUTPUT.PUT_LINE (item IN VARCHAR) | Zet een complete lijn in de buffer. |
Code Implementatie:
De output van de bovenstaande code:
Veelgestelde vragen en antwoorden
V # 1) Wat is pakket in PL SQL?
Antwoord: Een pakket is een objectschema dat logisch gerelateerde variabelen, constanten, cursors, subprogramma's en typen categoriseert.
V # 2) Wat zijn de voordelen van PL SQL-pakketten?
Antwoord: De voordelen van het pakket staan hieronder vermeld:
- Met pakketten wordt het gemakkelijk om applicaties te ontwerpen.
- Met pakketten kunnen we inkapseling bereiken.
- De pakketten helpen om betere prestaties te krijgen in termen van uitvoeringssnelheid.
- De code wordt modulair met pakketten.
V # 3) Kunnen we een pakketlichaam maken zonder specificatie?
Antwoord: Ja, we kunnen een pakketbody maken zonder pakketspecificatie.
Q # 4) Wat is Dbms_output Put_line in PL SQL?
Antwoord: De dbms_output put_line is een procedure in Oracle waarmee we informatie in een plat bestand of in het PL / SQL-uitvoerscherm kunnen schrijven.
Q # 5) Wat is Dbms_output?
Antwoord: De dbms_output is een standaardpakket waarmee we foutopsporingsinformatie kunnen weergeven, uitvoeren en berichten kunnen verzenden vanuit de subprogramma's, triggers, pakketten en het PL / SQL-codeblok
eclipse gebruiken voor c ++
Gevolgtrekking
In deze tutorial hebben we enkele basisconcepten over PL SQL-pakketten in detail besproken die essentieel zijn om ze in echte toepassingen te gebruiken.
We hebben de volgende onderwerpen behandeld:
- Pakketten en hun structuur.
- Verschillende kenmerken van pakketten.
- DBMS-uitvoer.
- Subprogramma's van DBMS_OUTPUT-pakket.
<< PREV Tutorial VOLGENDE Tutorial >>
Aanbevolen literatuur
- PL SQL-zelfstudie voor beginners met voorbeelden | Wat is PL / SQL
- PL SQL Records-zelfstudie met voorbeelden
- PL SQL-cursor en tekenreeksen: zelfstudie met codevoorbeelden
- Python DateTime-zelfstudie met voorbeelden
- Oracle Database Application Development: Oracle SQL en PL / SQL
- Top Oracle-sollicitatievragen: Oracle Basic-, SQL-, PL / SQL-vragen
- Verschil tussen SQL versus MySQL versus SQL Server (met voorbeelden)
- Top Oracle Forms and Reports Interviewvragen