pl sql package oracle pl sql package tutorial with examples
Lær om PL SQL-pakke, dens fordele, specifikationer og struktur:
I denne artikel vil vi fortsætte med PL / SQL-serien . I PL SQL Records tutorial har vi lært om Records og Record Types med programmeringseksempler.
Her skal vi udforske pakker i PL / SQL og nogle vigtige funktioner i pakker. Vi vil også diskutere nogle af de grundlæggende operationer på dem.
Vi vil også diskutere dbms_ouput-pakker i PL / SQL og dets underprogrammer.
Lad os starte med læringen !!
Hvad du vil lære:
PL SQL-pakke
En pakke er et objekt i form af et skema, der adskiller logisk forbundne emner, typer og underprogrammer i PL / SQL. En pakke består af to dele: Pakke specifikation og Pakkeelement eller definition .
Pakkespecifikationen er som en grænseflade til applikationen og bruges til at erklære variabler, konstanter, typer, undtagelser, markører og underprogrammer. Pakningens krop implementerer de underprogrammer og markører, der er angivet i pakkespecifikationen.
Vi kan opdatere, fejle eller ændre en pakkeindhold uden at røre ved pakke-specifikationen (også kaldet en grænseflade til pakken).
Fordele ved PL / SQL-pakke
Fordelene ved pakken er angivet nedenfor:
- Det giver modularitet til vores kode.
- Det hjælper med at designe applikationen let.
- PLSQL-pakke hjælper med at skjule information ved hjælp af offentlige og private genstande, datatyper og underprogrammer.
- pakke tillader vedligeholdelse af oplysninger over alle transaktionerne uden at det er nødvendigt at gemme dem i databasen.
- Pakker hjælper med at forbedre udførelsen af udførelsen.
Pakke specifikation
En pakke-specifikation er som en grænseflade til pakken. Det tager sig af deklarationen af variabler, konstanter, typer, undtagelser, markører og underprogrammer. Således har den alle detaljer om pakkeindholdet, men har ikke implementeringen af underprogrammerne.
Objekterne inde i en pakkespecifikation er offentlige objekter. Alle underprogrammer, der er implementeret i et pakkeorgan, er private objekter. Vi kan erklære flere globale variabler, funktioner eller procedurer inden for pakkespecifikationen.
En pakke-specifikation er en uafhængig enhed og kan eksistere uden en pakkeorganisation.
Kode implementering:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Output af ovenstående kode:
Pakkehus
Pakkeelementet indeholder implementeringen af de markører og underprogrammer, der er angivet i pakkespecifikationen. Det skal huskes, at de underprogrammer, der er implementeret i pakkeelementet, kan fås uden for pakken, forudsat at de er deklareret i pakkespecifikationen.
Det underprogram, der er angivet i pakkespecifikationen og kroppen, skal være nøjagtig. Denne sammenligning udføres token-for-token af deres overskrifter. Hvis de ikke stemmer overens, kaster PL / SQL en undtagelse.
bedste software til fjernelse af malware og spyware
Pakkeelementet kan indeholde andre underprogrammer, der ikke er deklareret i pakkespecifikationen. I så fald er disse kun private for denne pakkeorganisation. OPRET PAKKEKROPP er det nøgleord, der bruges til at oprette en pakketekst.
Lad os tage et eksempel på at oprette pakkeindholdet til de andre pakke.
Kodeimplementering med pakkeorgan.
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; /
Output af ovenstående kode skal være.
Se pakkeelementer
Da vi er færdige med at erklære elementerne i pakkespecifikationen og implementere dem i pakkeorganet, skal vi henvise til disse elementer. Pakkeelementerne består af funktioner, procedurer og variabler.
Disse offentlige elementer i pakken kan fås ved hjælp af pakkenavnet efterfulgt af elementnavnet adskilt af punktum (.).
Syntaks:
package_name.element_name;
Kodning af implementering for adgang til elementer:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Output af ovenstående kode:
Opret en PL SQL-pakke
Hvis der kaldes eller henvises til en pakke i en session, oprettes en ny forekomst af denne pakke i PL / SQL. Vi har mulighed for at initialisere elementerne i pakken eller udføre andre handlinger under oprettelse af instanser med pakkeinitialiseringsblokken med kode. Dette er den eksekverbare kodeblok i pakkeelementet efter initialisering af pakkeelementerne.
Syntaks for oprettelse af pakke:
CREATE [OR REPLACE] PACKAGE BODY IS BEGIN END
Her er package_n navnet på pakken.
qa føre interviewspørgsmål og svar pdf
Overbelastning af en pakke
Der kan være flere underprogrammer inden for en pakke med lignende navne. Denne funktion er nyttig, hvis vi vil have homogene parametre med heterogene datatyper. Begrebet overbelastning inden for pakken giver programmørerne mulighed for klart at nævne den type handling, de ønsker at udføre.
Kodning Implementering med overbelastning af proceduren. (Pakke oprettet):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Output af ovenstående kode:
Kodning Implementering med overbelastning af proceduren. (Pakkehus oprettet)
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; /
Output af ovenstående kode:
Kodning Implementering med overbelastning af proceduren. (Pakkeprocedure henvisende)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Output af ovenstående kode:
PLSQL-pakkeafhængighed
Pakkeafhængighederne i PL / SQL er angivet nedenfor:
- En pakke-specifikation er en uafhængig identitet.
- Pakkens krop er afhængig af pakkespecifikationen.
- En pakkehus kan kun kompileres separat. Hvis der imidlertid kompileres en pakkespecifikation, skal kroppen kompileres igen.
- Funktion eller en procedure inde i et pakkeorgan, der afhænger af de private elementer, skal implementeres efter deklarationen af de private elementer.
Retningslinjer for oprettelse af en pakke i PL SQL:
- En pakke skal skrives i generiske termer, så de kan genbruges i fremtiden.
- Undgå dobbelt karakteristika i en pakke.
- Pakkespecifikation indeholder nøglen til en korrekt designet applikation. Komplet pakkespecifikation, inden du opretter pakkeindholdet.
- En pakkespecifikation bør kun indeholde emner, underprogrammer og typer, der skal være tilgængelige for pakkebrugere. Det bør ikke have unødvendige implementeringsoplysninger.
- Pakkespecifikationen skal indeholde et begrænset antal varer. Det skal spare tid til genkompilering af koden, da en ændring af pakkespecifikationen kræver, at PL / SQL genkompilerer alle de underprogrammer, der henviser til pakken.
Pakkeoplysninger i PL / SQL
Alle relevante detaljer som kilden til pakken, underprogrammer og overbelastede emner gemmes i datadefinitionstabeller, efter at en pakke er oprettet.
Listen over datadefinitionstabeller er som følger:
- USER_PROCEDURES: Denne tabel indeholder underprogramoplysninger som de overbelastede emner, objekt_id osv. For den aktuelle bruger.
- ALL_PROCEDURER: Denne tabel indeholder underprogramoplysninger som de overbelastede emner, objekt_id osv. For alle brugere.
- USER_SOURCE: Denne tabel indeholder oplysninger om objektkilden for den aktuelle bruger.
- ALL_SOURCE: Denne tabel indeholder oplysninger om objektkilden for alle brugere.
- ALL_OBJECT: Denne tabel indeholder oplysningerne på pakken som creation_date, object_id og andre objektdetaljer for alle brugerne.
DBMS-output i PL / SQL
DBMS_OUTPUT-pakke tillader visning af PL / SQL-output produceret fra underprogrammer og kodeblokke. Dette hjælper os med at debugge, teste vores kode og sende meddelelser.
Det put_line procedure producerer outputdata til en buffer. Oplysningerne vises ved hjælp af get_line procedure eller ved at konfigurere SERVEROUTPUT ON i SQL * Plus.
DBMS_OUTPUT-pakke indeholder følgende underprogrammer:
Sl nr. | Navn | Formål |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Begrænser meddelelsesoutputtet. |
to | DBMS_OUTPUT.ENABLE (buffer I INTEGER STANDARD 20000) | Tillader meddelelsesoutput. Hvis bufferen er indstillet til NULL, repræsenterer den en ubegrænset størrelse af bufferen. |
3 | DBMS_OUTPUT.GET_LINE (linje UD VARCHAR, status UD NUMMER) | Henter en bufret information inden for en enkelt linje. |
4 | DBMS_OUTPUT.NEW_LINE | Afslutter slutningen af linjemarkøren. |
5 | DBMS_OUTPUT.PUT (vare I VARCHAR) | Sætter en ufuldstændig linje i bufferen. |
6 | DBMS_OUTPUT.PUT_LINE (vare I VARCHAR) | Sætter en komplet linje i bufferen. |
Kodeimplementering:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Output af ovenstående kode:
Ofte stillede spørgsmål og svar
Q # 1) Hvad er pakke i PL SQL?
Svar: En pakke er et objektskema, der kategoriserer logisk relaterede variabler, konstanter, markører, underprogrammer og typer.
Q # 2) Hvad er fordelene ved PL SQL-pakker?
Svar: Fordelene ved pakken er angivet nedenfor:
- Med pakker bliver det let at designe applikationer.
- Med pakker kan vi opnå indkapsling.
- Pakkerne hjælper med at få bedre ydeevne med hensyn til eksekveringshastighed.
- Koden bliver mere modulær med pakker.
Spørgsmål nr. 3) Kan vi oprette en pakkeorganisation uden specifikation?
Svar: Ja, vi kan oprette en pakkeindretning uden pakkespecifikation.
Q # 4) Hvad er Dbms_output Put_line i PL SQL?
Svar: Dbms_output put_line er en procedure i Oracle, der gør det muligt for os at skrive information i en flad fil eller på PL / SQL-outputskærmen.
Q # 5) Hvad er Dbms_output?
Svar: Dbms_output er en standardpakke, der giver os mulighed for at vise fejlretningsoplysninger, output og sende meddelelser fra underprogrammer, udløsere, pakker og PL / SQL-kodeblok
software reparationsværktøj til Windows 10
Konklusion
I denne vejledning har vi detaljeret diskuteret nogle grundlæggende begreber om PL SQL-pakker, der er vigtige for at bruge dem i rigtige applikationer.
Vi har dækket nedenstående emner:
- Pakker og deres struktur.
- Forskellige funktioner i pakker.
- DBMS-output.
- Underprogrammer af DBMS_OUTPUT-pakken.
<< PREV Tutorial | NÆSTE vejledning >>
Anbefalet læsning
- PL SQL-vejledning til begyndere med eksempler Hvad er PL / SQL
- PL SQL Records-vejledning med eksempler
- PL SQL Cursor And Strings: Tutorial med kodeeksempler
- Python DateTime-tutorial med eksempler
- Oracle Database Application Development: Oracle SQL & PL / SQL
- Top Oracle Interview-spørgsmål: Oracle Basic, SQL, PL / SQL-spørgsmål
- Forskellen mellem SQL Vs MySQL Vs SQL Server (med eksempler)
- Top spørgsmål om Oracle-formularer og rapporter