PL /SQL-pakker er skjemaobjekter at grupper logisk relatert PL /SQL-typer, variabler og underprogrammer 
 
 En pakke vil ha to obligatoriske deler. 
 
 Pakken spesifikasjon 
 
 
 pakke kroppen eller definisjon 
 
 pakke Spesifikasjon 
 
 Spesifikasjonen er grensesnittet til pakken. Det ERKLÆRER bare hvilke typer, variabler, konstanter, unntak, pekere, og underprogrammer som kan refereres fra utenfor pakken. Med andre ord, den inneholder all informasjon om innholdet i pakken, men utelukker koden for underprogrammene. 
 
 Alle gjenstander plassert i spesifikasjonen kalles  offentlig 
 stedene. Enhver subprogram ikke i pakken spesifikasjonen, men som er kodet i pakken kroppen kalles a  privat 
 objekt. 
 
 Følgende kodebiten viser en pakke spesifikasjonen har en enkelt prosedyre. Du kan ha mange globale variabler definert og flere prosedyrer eller funksjoner inne i en pakke 
 CREATE PAKKE cust_sal AS PROSEDYRE find_sal (c_id customers.id% type);. END cust_sal; /
 Når ovenfor koden kjøres på SQL teksten produserer det følgende resultat: 
 Package opprettet 
 Pakke Body 
 
 Pakken kroppen har kodene for ulike metoder deklarert i pakken spesifikasjon og andre private erklæringer, som er skjult fra kode utenfor. pakke. 
 
 CREATE PAKKE BODY erklæringen er brukt for å lage pakken kroppen. Følgende kodebiten viser pakke kroppen erklæringen for  cust_sal 
 pakken opprettet ovenfor. Jeg antok at vi allerede har kunder tabell som er opprettet i vår database som nevnt i PL /SQL - Variabler kapittel 
 CREATE OR REPLACE PAKKE BODY cust_sal AS PROSEDYRE find_sal (c_id customers.id% TYPE) ER c_sal customers.salary% TYPE.; BEGIN SELECT lønn INTO c_sal fra kunder hvor id = c_id; dbms_output.put_line ('Lønn:' || c_sal); END find_sal; END cust_sal; /
 Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat: 
 Package kroppen skapt 
 Bruke Package Elements 
 
 Pakken elementer (. variabler, er rutiner eller funksjoner) nås med følgende syntaks: 
 package_name.element_name; 
 Tenk, vi allerede har skapt over pakken i vår database schema, bruker følgende program  find_sal 
 metode  cust_sal 
 pakken: 
 ERKLÆRER kode customers.id% Type: = & cc_id; BEGIN cust_sal.find_sal (kode), END; /
 Når ovenfor koden kjøres på SQL teksten det bedt om å oppgi kunde-ID, og når du skriver inn en ID, viser den tilsvarende lønn som følger: 
 Oppgi verdien for cc_id: 1Salary. 3000PL /SQL-prosedyren ble fullført 
 Eksempel: 
 
 Følgende Programmet gir en mer komplett pakke. Vi vil bruke KUNDER tabell lagret i vår database med følgende poster: 
 Velg * fra kunder; + ---- + ---------- + ----- + ---- ------- + ---------- + | ID | NAME | AGE | ADRESSE | LØNN | + ---- + ---------- + ----- + ----------- + ---------- + | 1 | Ramesh | 32 | Ahmedabad | 3000.00 || 2 | Khilan | 25 | Delhi | 3000.00 || 3 | Kaushik | 23 | Kota | 3000.00 || 4 | Chaitali | 25 | Mumbai | 7500.00 || 5 | Hardik | 27 | Bhopal | 9500.00 || 6 | Komal | 22 | MP | 5500.00 | + ---- + ---------- + ----- + ----------- + ---------- + 
 PAKKEN SPESIFIKASJON: 
 CREATE OR REPLACE PAKKE c_package AS - Legger til en kunde PROSEDYRE addCustomer (c_id customers.id% type, c_name customers.name% type, c_age customers.age% type, c_addr customers.address% type, c_sal customers.salary% type); - Fjerner en kunde PROSEDYRE delCustomer (c_id customers.id% TYPE); --Lists Alle kunder PROSEDYRE listCustomer; . END c_package; /
 Når ovenfor koden kjøres på SQL teksten, skaper det ovennevnte pakke og viser følgende resultat: 
 Package opprettet 
 LAGE PAKKEN KROPP: 
 CREATE OR REPLACE PAKKE BODY c_package AS PROSEDYRE addCustomer (c_id customers.id% type, c_name customers.name% type, c_age customers.age% type, c_addr customers.address% type, c_sal customers.salary% type) IS BEGIN INSERT INTO kunder (id, navn, alder, adresse, lønn) VALUES (c_id, c_name, c_age, c_addr, c_sal); END addCustomer; PROSEDYRE delCustomer (c_id customers.id% type) IS BEGIN DELETE FROM kunder WHERE id = c_id; END delCustomer; PROSEDYRE listCustomer er markør c_customers er SELECT navn FROM kunder; TYPE c_list er FORTEGN customers.name% type; NAME_LIST c_list: = c_list (); teller heltall: = 0; BEGIN for N i c_customers LOOP teller: = teller 1; name_list.extend; NAME_LIST (counter): = n.name; dbms_output.put_line ('Customer (' || teller || ')' || NAME_LIST (counter)); END LOOP; END listCustomer; END c_package; /
 Over eksempel gjør bruk av  nestet tabell 
 som vi vil diskutere i neste kapittel. Når ovennevnte koden kjøres på SQL teksten, gir det følgende resultat: 
 Package kroppen skapt 
 BRUKE PAKKE:. 
 
 Følgende program bruker metodene erklært og definert i pakken  c_package 
 ERKLÆRER kode customers.id% Type: = 8; BEGIN c_package.addcustomer (7 'Rajnish', 25 'Chennai', 3500); c_package.addcustomer (8, 'Subham', 32 'Delhi', 7500); c_package.listcustomer; c_package.delcustomer (kode); c_package.listcustomer; END; /
 Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat: 
 Customer (1): Ramesh Kunde (2): Khilan Customer (3): Kaushik Customer (4 ): Chaitali Customer (5): Hardik Customer (6): KomalCustomer (7): RajnishCustomer (8): SubhamCustomer (1): Ramesh Kunde (2): Khilan Customer (3): Kaushik Customer (4): Chaitali Customer ( 5): Hardik Customer (6): KomalCustomer (7): RajnishPL /SQL-prosedyren ble fullført

