pl sql package oracle pl sql package tutorial with examples
Lär dig mer om PL SQL Package, dess fördelar, specifikationer och struktur:
I den här artikeln fortsätter vi med PL / SQL-serien . I PL SQL-poster tutorial har vi lärt oss om poster och inspelningstyper med programmeringsexempel.
Här ska vi utforska paket i PL / SQL och några viktiga funktioner i paket. Vi kommer också att diskutera några av de grundläggande operationerna på dem.
Vi kommer också att diskutera dbms_ouput-paket i PL / SQL och dess underprogram.
Låt oss börja med lärdomarna !!
Vad du kommer att lära dig:
PL SQL-paket
Ett paket är ett objekt i form av ett schema som segregerar logiskt anslutna objekt, typer och underprogram i PL / SQL. Ett paket består av två delar: Paketspecifikation och Paketets innehåll eller definition .
Paketspecifikationen är som ett gränssnitt till applikationen och används för att deklarera variabler, konstanter, typer, undantag, markörer och underprogram. Paketets kropp implementerar de underprogram och markörer som anges i paketspecifikationen.
Vi kan uppdatera, felsöka eller ändra en paketdel utan att röra paketets specifikation (kallas även ett gränssnitt till paketet).
Fördelar med PL / SQL-paket
Fördelarna med paketet listas nedan:
- Det ger modul till vår kod.
- Det hjälper till att utforma applikationen enkelt.
- PLSQL Package hjälper till att dölja information med hjälp av offentliga och privata objekt, datatyper och underprogram.
- paketet tillåter information om alla transaktioner utan att behöva lagra den i databasen.
- Paket hjälper till att förbättra utförandets prestanda.
Paketspecifikation
En paketspecifikation är som ett gränssnitt till paketet. Den tar hand om deklarationen av variabler, konstanter, typer, undantag, markörer och underprogram. Således har den alla detaljer om paketinnehållet men har inte implementeringen av delprogrammen.
Objekten i en paketspecifikation är offentliga objekt. Alla underprogram som implementeras i en paketdel är privata objekt. Vi kan deklarera flera globala variabler, funktioner eller procedurer inom paketspecifikationen.
En paketspecifikation är en oberoende enhet och kan existera utan en paketdel.
Kodimplementering:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Utgången från ovanstående kod:
Förpackningens kropp
Paketet innehåller implementeringen av markörer och underprogram som anges i paketspecifikationen. Det måste komma ihåg att de underprogram som implementeras i paketet kan nås utanför paketet förutsatt att de deklareras i paketspecifikationen.
Det underprogram som anges i paketets specifikation och kropp måste vara exakt. Denna jämförelse görs to-by-token för deras rubriker. Om de inte matchar ger PL / SQL ett undantag.
gratis backup-program för Windows 7
Paketet kan innehålla andra underprogram som inte deklareras i paketets specifikation. I så fall är de bara privata för det paketet. SKAPA PAKETKROPP är det nyckelord som används för att skapa en paketdel.
Låt oss ta ett exempel för att skapa paketet för de andra paket.
Kodimplementering med paketet.
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; /
Utdata från ovanstående kod ska vara.
Se paketelementen
Eftersom vi är klara med att deklarera elementen i paketspecifikationen och implementera dem i paketet måste vi hänvisa till dessa element. Paketelementen består av funktioner, procedurer och variabler.
Dessa offentliga element i paketet kan nås med paketnamnet följt av elementnamnet åtskilt av punkt (.) -Notationen.
Syntax:
package_name.element_name;
Kodning av implementering för åtkomst av element:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Utgången från ovanstående kod:
intervjufrågor för försäljningsutvecklare för erfarna
Skapa ett PL SQL-paket
Om ett paket anropas eller hänvisas till i en session skapas en ny instans av det paketet i PL / SQL. Vi har möjlighet att initialisera elementen i paketet eller utföra andra åtgärder under skapande av instanser med paketinitialiseringsblocket med kod. Detta är det körbara kodblocket i paketet efter initialiseringen av paketelementen.
Syntax för skapande av paket:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Här är package_n namnet på paketet.
Överbelastning av ett paket
Det kan finnas flera underprogram i ett paket med liknande namn. Den här funktionen är användbar om vi vill ha homogena parametrar med heterogena datatyper. Begreppet överbelastning inom paketet gör det möjligt för programmerarna att tydligt nämna vilken typ av åtgärder de vill utföra.
Kodning Implementering med proceduröverbelastning. (Paket skapat):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Utgången från ovanstående kod:
Kodning Implementering med proceduröverbelastning. (Paketet skapades)
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; /
Utgången från ovanstående kod:
Kodning Implementering med proceduröverbelastning. (Paketförfarande hänvisar)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Utgången från ovanstående kod:
PLSQL-paketberoende
Paketberoenden i PL / SQL listas nedan:
- En paketspecifikation är en oberoende identitet.
- Paketets kropp är beroende av paketets specifikation.
- En förpackningsdel kan bara sammanställas separat. Men om en paketspecifikation sammanställs måste kroppen kompileras igen.
- Funktion eller ett förfarande inuti en paketdel som beror på de privata elementen bör implementeras efter deklarationen av de privata elementen.
Riktlinjer för att skapa ett paket i PL SQL:
- Ett paket bör skrivas i generiska termer så att de kan återanvändas i framtiden.
- Undvik dubbla egenskaper i ett paket.
- Paketspecifikationen innehåller nyckeln till en korrekt utformad applikation. Komplett paketspecifikation innan du skapar paketet.
- En paketspecifikation bör endast innehålla objekt, underprogram och typer som måste vara tillgängliga för paketanvändarna. Det borde inte ha onödig implementeringsinformation.
- Paketspecifikationen bör innehålla ett begränsat antal artiklar. Det ska spara tid för att återkompilera koden som en ändring av paketspecifikationen kräver att PL / SQL kompilerar om alla de underprogram som hänvisar till paketet.
Paketinformation i PL / SQL
Alla relevanta detaljer som källan till paketet, underprogram och överbelastade objekt lagras i datadefinitionstabeller efter att ett paket har skapats.
Listan över datadefinitionstabellerna är som följer:
- USER_PROCEDURES: Denna tabell innehåller underprograminformation som de överbelastade objekten, objekt_id och så vidare för den aktuella användaren.
- ALL_PROCEDURER: Den här tabellen innehåller underprograminformation som de överbelastade objekten, objekt_id och så vidare för alla användare.
- USER_SOURCE: Denna tabell innehåller information om objektkällan för den aktuella användaren.
- ALL_SOURCE: Denna tabell innehåller information om objektkällan för alla användare.
- ALL_OBJECT: Denna tabell innehåller informationen på paketet som creation_date, object_id och andra objektdetaljer för alla användare.
DBMS-utgång i PL / SQL
DBMS_OUTPUT-paketet tillåter visning av PL / SQL-utdata som produceras från underprogram och kodblock. Detta hjälper oss att felsöka, testa vår kod och att skicka meddelanden.
De put_line proceduren producerar utdata till en buffert. Informationen visas med hjälp av get_line procedur eller genom att konfigurera SERVEROUTPUT ON i SQL * Plus.
DBMS_OUTPUT-paketet innehåller följande underprogram:
Sl No. | namn | Syften |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Begränsar meddelandets utdata. |
två | DBMS_OUTPUT.ENABLE (buffert I INTEGER STANDARD 20000) | Tillåter att meddelandet skickas. Om bufferten är inställd på NULL representerar den en obegränsad storlek på bufferten. |
3 | DBMS_OUTPUT.GET_LINE (rad OUT VARCHAR, status OUT NUMBER) | Hämtar en buffrad information inom en enda rad. |
4 | DBMS_OUTPUT.NEW_LINE | Avslutar slutet på linjemarkören. |
5 | DBMS_OUTPUT.PUT (artikel I VARCHAR) | Sätter en ofullständig rad i bufferten. |
6 | DBMS_OUTPUT.PUT_LINE (artikel I VARCHAR) | Sätter en hel rad i bufferten. |
Kodimplementering:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Utgången från ovanstående kod:
Vanliga frågor och svar
F # 1) Vad är paketet i PL SQL?
Svar: Ett paket är ett objektschema som kategoriserar logiskt relaterade variabler, konstanter, markörer, underprogram och typer.
F # 2) Vilka är fördelarna med PL SQL-paket?
Svar: Fördelarna med paketet listas nedan:
- Med paket blir det enkelt att designa applikationer.
- Med paket kan vi uppnå inkapsling.
- Paketen hjälper till att få bättre prestanda när det gäller exekveringshastighet.
- Koden blir mer modulär med paket.
F # 3) Kan vi skapa en paketdel utan specifikation?
Svar: Ja, vi kan skapa en paketdel utan paketspecifikation.
F # 4) Vad är Dbms_output Put_line i PL SQL?
Svar: Dbms_output put_line är ett förfarande i Oracle som gör det möjligt för oss att skriva information i en platt fil eller på PL / SQL-utgångsskärmen.
F # 5) Vad är Dbms_output?
Svar: Dbms_output är ett standardpaket som låter oss visa felsökningsinformation, mata ut och skicka meddelanden från underprogrammen, triggers, paket och PL / SQL-kodblock
hur man använder .jar-filer
Slutsats
I denna handledning har vi diskuterat i detalj några grundläggande begrepp om PL SQL-paket som är nödvändiga för att använda dem i riktiga applikationer.
Vi har täckt följande ämnen som listas nedan:
- Paket och deras struktur.
- Olika funktioner i paket.
- DBMS-utdata.
- Underprogram för DBMS_OUTPUT-paketet.
<< PREV Tutorial | NÄSTA självstudie >>
Rekommenderad läsning
- PL SQL-handledning för nybörjare med exempel | Vad är PL / SQL
- PL SQL Records handledning med exempel
- PL SQL Cursor And Strings: Handledning med kodexempel
- Python DateTime-handledning med exempel
- Oracle Database Application Development: Oracle SQL & PL / SQL
- Oracle-intervjufrågor: Oracle Basic, SQL, PL / SQL-frågor
- Skillnad mellan SQL Vs MySQL Vs SQL Server (med exempel)
- Top Oracle Forms and Reports Interview Frågor