pl sql package oracle pl sql package tutorial with examples
Lær om PL SQL-pakke, fordelene, spesifikasjonene og strukturen:
I denne artikkelen vil vi fortsette med PL / SQL-serien . I PL SQL Records veiledning, har vi lært om poster og platetyper med programmeringseksempler.
Her skal vi utforske pakker i PL / SQL og noen viktige funksjoner i pakker. Vi vil også diskutere noen av de grunnleggende operasjonene på dem.
Vi vil også diskutere dbms_ouput-pakker i PL / SQL og dets underprogrammer.
La oss starte med læringene !!
Hva du vil lære:
PL SQL-pakke
En pakke er et objekt i form av et skjema som adskiller logisk tilknyttede elementer, typer og underprogrammer i PL / SQL. En pakke består av to deler: Pakke spesifikasjon og Pakkeinnhold eller definisjon .
Pakkespesifikasjonen er som et grensesnitt til applikasjonen og brukes til å erklære variabler, konstanter, typer, unntak, markører og underprogrammer. Kroppen til en pakke implementerer delprogrammene og markørene som er angitt i pakkespesifikasjonen.
Vi kan oppdatere, feilsøke eller endre en pakkeinnhold uten å berøre pakke-spesifikasjonen (også kalt et grensesnitt til pakken).
Fordeler med PL / SQL-pakke
Fordelene med pakken er listet opp nedenfor:
- Det gir modularitet til koden vår.
- Det hjelper med å utforme applikasjonen enkelt.
- PLSQL Package hjelper med å skjule informasjon ved hjelp av offentlige og private gjenstander, datatyper og underprogrammer.
- pakken gjør det mulig å opprettholde informasjon over alle transaksjonene uten å måtte lagre den i databasen.
- Pakker bidrar til å forbedre ytelsen til utførelsen.
Pakke spesifikasjon
En pakkespesifikasjon er som et grensesnitt til pakken. Den tar seg av erklæringen av variabler, konstanter, typer, unntak, markører og underprogrammer. Dermed har den alle detaljene om pakkeinnholdet, men har ikke implementeringen av underprogrammene.
Objektene i en pakkespesifikasjon er offentlige objekter. Alle underprogrammer implementert i en pakkeorganisasjon er private objekter. Vi kan erklære flere globale variabler, funksjoner eller prosedyrer innenfor pakkespesifikasjonen.
En pakke-spesifikasjon er en uavhengig enhet og kan eksistere uten en pakkeinnretning.
Kodeimplementering:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Resultatet av ovennevnte kode:
Pakkehus
Pakkeinnholdet inneholder implementeringen av markørene og underprogrammene som er angitt i pakkespesifikasjonen. Det må huskes at delprogrammene som er implementert i pakken, kan nås utenfor pakken forutsatt at de er deklarert i pakkespesifikasjonen.
Det underprogrammet som er angitt i pakkespesifikasjonen og innholdet, må være nøyaktig. Denne sammenligningen gjøres to-by-token av overskriftene deres. I tilfelle de ikke stemmer overens, gir PL / SQL et unntak.
gratis backup-program for Windows 7
Pakkeinnholdet kan inneholde andre underprogrammer som ikke er deklarert i pakkespesifikasjonen. I så fall er de bare private for pakken. LAG PAKKEKROPP er nøkkelordet som brukes til å lage en pakkeinnhold.
La oss ta et eksempel for å lage pakken for de andre pakke.
Kodeimplementering med pakkeinnhold.
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; /
Resultatet av ovennevnte kode skal være.
Se pakkeelementene
Ettersom vi er ferdige med å erklære elementene i pakkespesifikasjonen og implementere dem i pakkeorganet, må vi referere til disse elementene. Pakkeelementene består av funksjonene, prosedyrene og variablene.
Disse offentlige elementene i pakken kan nås med pakkenavnet etterfulgt av elementnavnet atskilt med punktnotasjonen.
beste temperaturovervåking programvare windows 10
Syntaks:
package_name.element_name;
Koding implementering for tilgang til elementer:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Resultatet av ovennevnte kode:
Lag en PL SQL-pakke
Hvis en pakke kalles til eller refereres til i en økt, opprettes en ny forekomst av den pakken i PL / SQL. Vi har muligheten til å initialisere elementene i pakken eller utføre andre handlinger under oppretting av forekomster med Package Initialization block of code. Dette er den kjørbare kodeblokken i pakkehuset etter initialiseringen av pakkeelementene.
Syntaks for pakkeoppretting:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Her er package_n navnet på pakken.
Overbelastning av en pakke
Det kan være flere underprogrammer i en pakke som har lignende navn. Denne funksjonen er nyttig hvis vi vil ha homogene parametere med heterogene datatyper. Konseptet med overbelastning i pakken gjør at programmererne tydelig kan nevne hvilken type handling de vil utføre.
Koding Implementering med overbelastning av prosedyren. (Pakke opprettet):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Resultatet av ovennevnte kode:
Koding Implementering med overbelastning av prosedyren. (Pakkehus opprettet)
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; /
Resultatet av ovennevnte kode:
Koding Implementering med overbelastning av prosedyren. (Pakkeprosedyre refererer)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Resultatet av ovennevnte kode:
Avhengighet av PLSQL-pakke
Pakkeavhengighetene i PL / SQL er oppført nedenfor:
- En pakkespesifikasjon er en uavhengig identitet.
- Pakken er avhengig av pakkespesifikasjonen.
- En pakkehus kan bare kompileres separat. Imidlertid, hvis en pakkespesifikasjon blir samlet, må kroppen kompileres igjen.
- Funksjon eller en prosedyre inne i et pakkeorgan som er avhengig av de private elementene, bør implementeres etter deklarasjonen av de private elementene.
Retningslinjer for å lage en pakke i PL SQL:
- En pakke skal skrives generisk slik at de kan brukes på nytt i fremtiden.
- Unngå dupliserte egenskaper i en pakke.
- Pakkespesifikasjonen inneholder nøkkelen til et riktig designet program. Fullstendig pakkespesifikasjon før du oppretter pakken.
- En pakke-spesifikasjon skal bare inneholde elementer, underprogrammer og typer som må være tilgjengelige for brukerne av pakken. Den skal ikke ha unødvendig implementeringsinformasjon.
- Pakkespesifikasjonen bør inneholde et begrenset antall varer. Det skal spare tid for å kompilere koden på nytt som en modifikasjon av pakkespesifikasjonen krever at PL / SQL kompilerer alle underprogrammene som refererer til pakken.
Pakkeinformasjon i PL / SQL
Alle relevante detaljer som kilden til pakken, underprogrammer og overbelastede elementer lagres i datadefinisjonstabellene etter at en pakke er opprettet.
Listen over datadefinisjonstabellene er som følger:
- USER_PROCEDURES: Denne tabellen inneholder underprograminformasjon som de overbelastede elementene, object_id og så videre for den nåværende brukeren.
- ALL_PROCEDURER: Denne tabellen inneholder underprograminformasjon som de overbelastede elementene, object_id og så videre for alle brukere.
- USER_SOURCE: Denne tabellen inneholder informasjonen om objektkilden for den nåværende brukeren.
- ALL_SOURCE: Denne tabellen inneholder informasjonen om objektkilden for alle brukerne.
- ALL_OBJECT: Denne tabellen inneholder informasjonen på pakken som creation_date, object_id og andre detaljer for alle brukerne.
DBMS-utgang i PL / SQL
DBMS_OUTPUT-pakken tillater visning av PL / SQL-utdata produsert fra underprogrammer og kodeblokker. Dette hjelper oss med å feilsøke, teste koden vår og sende meldinger.
De put_line prosedyren produserer utdataene til en buffer. Informasjonen vises ved hjelp av get_line prosedyre eller ved å konfigurere SERVEROUTPUT ON i SQL * Plus.
DBMS_OUTPUT-pakken inneholder følgende underprogrammer:
Sl nr. | Navn | Formål |
---|---|---|
en | DBMS_OUTPUT.DISABLE | Begrenser meldingsutgangen. |
to | DBMS_OUTPUT.ENABLE (buffer I INTEGER STANDARD 20000) | Tillater meldingen. Hvis bufferen er satt til NULL, representerer den en ubegrenset størrelse på bufferen. |
3 | DBMS_OUTPUT.GET_LINE (linje UT VARCHAR, status UT NUMMER) | Henter en bufret informasjon innenfor en enkelt linje. |
4 | DBMS_OUTPUT.NEW_LINE | Avslutter en slutt på linjemarkøren. |
5 | DBMS_OUTPUT.PUT (vare I VARCHAR) | Setter en ufullstendig linje i bufferen. |
6 | DBMS_OUTPUT.PUT_LINE (vare I VARCHAR) | Setter en komplett linje i bufferen. |
Kodeimplementering:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Resultatet av ovennevnte kode:
Ofte stilte spørsmål og svar
Q # 1) Hva er pakke i PL SQL?
Svar: En pakke er et objektskjema som kategoriserer logisk relaterte variabler, konstanter, markører, underprogrammer og typer.
Q # 2) Hva er fordelene med PL SQL-pakker?
Svar: Fordelene med pakken er listet opp nedenfor:
- Med pakker blir det enkelt å designe applikasjoner.
- Med pakker kan vi oppnå innkapsling.
- Pakkene hjelper deg med å få bedre ytelse når det gjelder kjøringshastighet.
- Koden blir mer modulær med pakker.
Spørsmål 3) Kan vi lage en pakkeorganisasjon uten spesifikasjon?
Svar: Ja, vi kan lage en pakkeinnretning uten pakkespesifikasjon.
Q # 4) Hva er Dbms_output Put_line i PL SQL?
Svar: Dbms_output put_line er en prosedyre i Oracle som gjør det mulig for oss å skrive informasjon i en flat fil eller i PL / SQL-utgangsskjermen.
Q # 5) Hva er Dbms_output?
Svar: Dbms_output er en standardpakke som lar oss vise feilsøkingsinformasjon, sende ut og sende meldinger fra underprogrammer, utløsere, pakker og PL / SQL-kodeblokk
hvordan lage en strengoppstilling
Konklusjon
I denne veiledningen har vi diskutert i detalj noen grunnleggende konsepter om PL SQL-pakker som er essensielle for å bruke dem i ekte applikasjoner.
Vi har dekket følgende emner listet opp nedenfor:
- Pakker og deres struktur.
- Ulike funksjoner i pakker.
- DBMS-utgang.
- Underprogrammer for DBMS_OUTPUT-pakken.
<< PREV Tutorial | NESTE veiledning >>
Anbefalt lesing
- PL SQL Tutorial for nybegynnere med eksempler Hva er PL / SQL
- PL SQL-opplæringsveiledning med eksempler
- PL SQL markør og strenger: opplæring med kodeeksempler
- Python DateTime Tutorial med eksempler
- Oracle Database Application Development: Oracle SQL & PL / SQL
- Topp spørsmål om Oracle-intervju: Oracle Basic, SQL, PL / SQL-spørsmål
- Forskjellen mellom SQL Vs MySQL Vs SQL Server (med eksempler)
- Top Oracle Forms and Reports Interview Questions