pl sql package oracle pl sql package tutorial with examples
Saznajte više o PL SQL paketu, njegovim prednostima, specifikacijama i strukturi:
U ovom ćemo članku nastaviti s PL / SQL serija . U PL SQL zapisi udžbenik, naučili smo o zapisima i vrstama zapisa s primjerima programiranja.
Ovdje ćemo istražiti pakete u PL / SQL i neke važne značajke paketa. Također, razgovarat ćemo o nekim osnovnim operacijama na njima.
Također ćemo razgovarati o dbms_ouput paketima u PL / SQL i njegovim potprogramima.
Krenimo od učenja !!
Što ćete naučiti:
PL SQL paket
Paket je objekt u obliku sheme koja razdvaja logički povezane stavke, vrste i potprograme u PL / SQL-u. Paket se sastoji od dva dijela: Specifikacija paketa i Tijelo ili definicija paketa .
Specifikacija paketa slična je sučelju aplikacije i koristi se za deklariranje varijabli, konstanti, tipova, izuzetaka, pokazivača i potprograma. Tijelo paketa implementira potprograme i pokazivače deklarirane u specifikaciji paketa.
Možemo ažurirati, otkloniti pogreške ili promijeniti tijelo paketa bez dodirivanja specifikacije paketa (koje se naziva i sučelje paketa).
Prednosti PL / SQL paketa
Prednosti paketa navedene su u nastavku:
- To daje modularnost našem kodu.
- Pomaže u jednostavnom dizajniranju aplikacije.
- PLSQL paket pomaže sakriti podatke uz pomoć javnih i privatnih predmeta, vrsta podataka i potprograma.
- paket omogućuje održavanje informacija u svim transakcijama bez potrebe za pohranom u bazu podataka.
- Paketi pomažu poboljšati izvedbu izvršenja.
Specifikacija paketa
Specifikacija paketa je poput sučelja s paketom. Vodi brigu o deklaraciji varijabli, konstanti, tipova, izuzetaka, pokazivača i potprograma. Stoga ima sve detalje o sadržaju paketa, ali nema provedbu potprograma.
Objekti unutar specifikacije paketa su javni objekti. Svi potprogrami implementirani unutar tijela paketa privatni su objekti. Možemo deklarirati više globalnih varijabli, funkcija ili procedura unutar specifikacije paketa.
Specifikacija paketa je neovisna cjelina i može postojati bez tijela paketa.
Implementacija koda:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Izlaz gornjeg koda:
Tijelo paketa
Tijelo paketa sadrži provedbu kursora i potprograma deklariranih u specifikaciji paketa. Moramo imati na umu da se potprogramima implementiranim u tijelu paketa može pristupiti izvan paketa pod uvjetom da su deklarirani u specifikaciji paketa.
Podprogram naveden u specifikaciji paketa i tijelu mora biti točan. Ova se usporedba vrši po znakovima njihovih zaglavlja. U slučaju da se ne podudaraju, PL / SQL donosi iznimku.
najbolji softver za podešavanje računala 2019
Tijelo paketa može sadržavati druge potprograme koji nisu deklarirani u specifikaciji paketa. U tom su slučaju privatni samo za to tijelo paketa. IZRADI TIJELO PAKETA je ključna riječ koja se koristi za stvaranje tijela paketa.
Uzmimo primjer za stvaranje tijela paketa za ostali paket.
Implementacija koda s tijelom paketa.
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; /
Izlaz gornjeg koda trebao bi biti.
Pogledajte Elementi paketa
Kako smo završili s deklariranjem elemenata u specifikaciji paketa i njihovom implementacijom u tijelo paketa, moramo se osvrnuti na te elemente. Elementi paketa sastoje se od funkcija, postupaka i varijabli.
Ovim javnim elementima paketa može se pristupiti imenom paketa iza kojeg slijedi ime elementa odvojeno točkom (.) Oznakom.
Sintaksa:
package_name.element_name;
Implementacija kodiranja za pristup elementima:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Izlaz gornjeg koda:
Stvorite PL SQL paket
Ako se paket poziva ili upućuje na njega u sesiji, nova instanca tog paketa kreira se u PL / SQL. Imamo mogućnost inicijaliziranja elemenata paketa ili izvršavanja bilo kakvih drugih radnji tijekom kreiranja instance s blokom inicijalizacije paketa koda. Ovo je izvršni blok koda unutar tijela paketa nakon inicijalizacije elemenata paketa.
Sintaksa stvaranja paketa:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Ovdje je package_n naziv paketa.
Preopterećenje paketa
Unutar paketa može biti više potprograma koji imaju slična imena. Ova je značajka korisna ako želimo imati homogene parametre s heterogenim vrstama podataka. Koncept preopterećenja unutar paketa omogućava programerima da jasno navedu vrstu radnje koju žele izvršiti.
c ++ pretvoriti char * u int
Implementacija kodiranja s preopterećenjem postupka. (Paket izrađen):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Izlaz gornjeg koda:
Implementacija kodiranja s preopterećenjem postupka. (Tijelo paketa stvoreno)
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; /
Izlaz gornjeg koda:
Implementacija kodiranja s preopterećenjem postupka. (Uputa na postupak paketa)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Izlaz gornjeg koda:
Ovisnost PLSQL paketa
Ovisnosti o paketu u PL / SQL navedene su u nastavku:
- Specifikacija paketa je neovisni identitet.
- Tijelo paketa oslanja se na specifikaciju paketa.
- Tijelo paketa može se sastaviti samo odvojeno. Međutim, ako se sastavi specifikacija paketa, tijelo treba ponovno sastaviti.
- Funkciju ili proceduru unutar tijela paketa koja ovisi o privatnim elementima treba implementirati nakon deklaracije privatnih elemenata.
Smjernice za stvaranje paketa u PL SQL-u:
- Paket bi trebao biti napisan generički, kako bi se mogao ponovno koristiti u budućnosti.
- Izbjegavajte dvostruke karakteristike u paketu.
- Specifikacija paketa sadrži ključ pravilno dizajnirane aplikacije. Kompletna specifikacija paketa prije stvaranja tijela paketa.
- Specifikacija paketa treba sadržavati samo stavke, potprograme i vrste koji moraju biti dostupni korisnicima paketa. Ne bi trebao imati nepotrebne informacije o provedbi.
- Specifikacija paketa treba sadržavati ograničeni broj predmeta. Uštedjet će vrijeme za ponovnu kompilaciju koda jer izmjena specifikacije paketa zahtijeva PL / SQL da ponovno sastavi sve potprograme koji upućuju na paket.
Informacije o paketu u PL / SQL
Svi relevantni detalji poput izvora paketa, potprograma i preopterećenih stavki pohranjuju se u tablice definicije podataka nakon izrade paketa.
Popis tablica definicije podataka je sljedeći:
- KORISNIČKI_PROCEDURI: Ova tablica sadrži informacije o potprogramu poput preopterećenih stavki, object_id i tako dalje za trenutnog korisnika.
- SVI_PROCEDURI: Ova tablica sadrži informacije o potprogramu poput preopterećenih stavki, object_id i tako dalje za sve korisnike.
- USER_SOURCE: Ova tablica sadrži informacije o izvoru objekta za trenutnog korisnika.
- ALL_SOURCE: Ova tablica sadrži informacije o izvoru objekta za sve korisnike.
- ALL_OBJECT: Ova tablica sadrži informacije o paketu, kao što su datum_kretanja, id_objekta i drugi detalji objekta za sve korisnike.
Izlaz DBMS-a u PL / SQL
Paket DBMS_OUTPUT omogućuje prikaz PL / SQL izlaza proizvedenog iz potprograma i blokova koda. To nam pomaže u uklanjanju pogrešaka, testiranju koda i slanju poruka.
The put_line postupak proizvodi izlazne podatke u međuspremnik. Podaci se prikazuju uz pomoć get_line postupka ili konfiguriranjem SERVEROUTPUT ON u SQL * Plus.
DBMS_OUTPUT paket sadrži sljedeće potprograme:
Sl br. | Ime | Svrhe |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Ograničava izlaz poruke. |
dva | DBMS_OUTPUT.ENABLE (međuspremnik U INTEGER DEFAULT 20000) | Omogućuje izlaz poruke. Ako je međuspremnik postavljen na NULL, to predstavlja neograničenu veličinu međuspremnika. |
3 | DBMS_OUTPUT.GET_LINE (linija OUT VARCHAR, status OUT BROJ) | Dohvaća međuspremnik podataka u jednom retku. |
4 | DBMS_OUTPUT.NEW_LINE | Završava kraj oznake retka. |
5 | DBMS_OUTPUT.PUT (stavka u VARCHAR-u) | U međuspremnik stavlja nepotpuni redak. |
6 | DBMS_OUTPUT.PUT_LINE (stavka U VARCHARU) | Stavlja kompletan redak u međuspremnik. |
Implementacija koda:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Izlaz gornjeg koda:
Često postavljana pitanja i odgovori
P # 1) Što je paket u PL SQL-u?
Odgovor: Paket je objektna shema koja kategorizira logički povezane varijable, konstante, pokazivače, potprograme i vrste.
P # 2) Koje su prednosti PL SQL paketa?
Odgovor: Prednosti paketa navedene su u nastavku:
- S paketima postaje lako dizajnirati aplikacije.
- Paketima možemo postići inkapsulaciju.
- Paketi pomažu u postizanju boljih performansi u pogledu brzine izvršavanja.
- Kôd postaje modularniji s paketima.
P # 3) Možemo li stvoriti tijelo paketa bez specifikacije?
Odgovor: Da, možemo stvoriti tijelo paketa bez specifikacije paketa.
P # 4) Što je Dbms_output Put_line u PL SQL-u?
Odgovor: Dbms_output put_line je postupak u Oracleu koji nam omogućuje zapisivanje podataka u ravnu datoteku ili na PL / SQL izlazni zaslon.
P # 5) Što je Dbms_output?
Odgovor: Dbms_output zadani je paket koji nam omogućuje prikaz podataka o otklanjanju pogrešaka, izlaz i slanje poruka iz potprograma, okidača, paketa i PL / SQL bloka koda
Windows 10 zadani mrežni prolaz nije dostupan
Zaključak
U ovom uputstvu detaljno smo razgovarali o nekim osnovnim konceptima o PL SQL paketima koji su ključni za njihovu upotrebu u stvarnim aplikacijama.
Obradili smo sljedeće teme navedene u nastavku:
- Paketi i njihova struktura.
- Različite značajke paketa.
- Izlaz DBMS-a.
- Potprogrami paketa DBMS_OUTPUT.
<< PREV Tutorial | Sljedeći vodič >>
Preporučena literatura
- PL SQL Vodič za početnike s primjerima | Što je PL / SQL
- PL SQL evidencija Vodič sa primjerima
- PL SQL kursor i nizovi: Vodič s primjerima koda
- Python DateTime Vodič s primjerima
- Razvoj aplikacije Oracle baze podataka: Oracle SQL i PL / SQL
- Najčešća pitanja za intervju za Oracle: Oracle Basic, SQL, PL / SQL pitanja
- Razlika između SQL Vs MySQL Vs SQL Server (s primjerima)
- Najčešća pitanja za intervjue za Oracle obrasce i izvješća