sql >> Database >  >> RDS >> Oracle

PL/SQL-pakketten maken in Oracle Database?

In de vorige tutorial hebben we alle noodzakelijke theorieën over PL/SQL-pakketten in Oracle Database behandeld. Daar leerden we wat pakketten zijn, hun architectuur en de syntaxis om hetzelfde te maken. Nu we alle theorieën hebben gezien die nodig zijn om de vragen in uw certificeringsexamen en interview te beantwoorden, is het tijd om een ​​stap verder te gaan en een voorbeeld te geven dat het proces van het maken van een PL/SQL-pakket in Oracle Database demonstreert. 

Hoe een pakket maken?

Voor de demonstratie ga ik een heel eenvoudig pakket maken dat uit twee elementen zal bestaan:een functie en een opgeslagen procedure. Ik heb geprobeerd dit voorbeeld zo eenvoudig mogelijk te houden om het concept gemakkelijk te begrijpen te houden.

Zoals we hebben besproken tijdens het bespreken van de architectuur van het pakket in de vorige tutorial dat het pakket in twee delen is verdeeld, die zijn

  • Pakketkop en
  • De inhoud van het pakket

We beginnen dus eerst met het maken van de pakketkop

Pakketkop

CREATE OR REPLACE PACKAGE pkg_RebellionRider IS
  FUNCTION prnt_strng RETURN VARCHAR2;
  PROCEDURE proc_superhero(f_name VARCHAR2, l_name VARCHAR2);
END pkg_RebellionRider;

Door de bovenstaande code te bekijken, kunnen we duidelijk zeggen dat het pakket twee pakketelementen zal bevatten, namelijk:een PL/SQL-functie prnt_strng en een opgeslagen procedure proc_superhero.

Pakketlichaam

--Package Body
CREATE OR REPLACE PACKAGE BODY pkg_RebellionRider IS
  --Function Implimentation
  FUNCTION prnt_strng RETURN VARCHAR2 IS
    BEGIN
      RETURN 'RebellionRider.com';
    END prnt_strng;
  
  --Procedure Implimentation
   PROCEDURE proc_superhero(f_name VARCHAR2, l_name VARCHAR2) IS
     BEGIN
      INSERT INTO new_superheroes (f_name, l_name) VALUES(f_name, l_name);
     END;
  
END pkg_rrdr;

In de bovenstaande code voor de pakkettekst hebben we beide pakketelementen geïmplementeerd die we in de pakketkop hebben gedefinieerd.

Infobyte
Zowel de header als de body van het pakket zijn individuele database-objecten, dus je moet ze apart compileren om je pakket aan het werk te zetten.

Hoe krijg ik toegang tot de pakketelementen?

We hebben onze pakketkop en -tekst met succes gemaakt en gecompileerd, wat nu? Net als elk ander databaseobject heeft het pakket een uniek doel. Met behulp van een pakket kunt u verschillende database-objecten onder één naam groeperen en aangezien PL/SQL-pakketten databaseblokken worden genoemd, kunnen ze in de database worden opgeslagen en later indien nodig worden gebruikt.

Dus de vraag rijst hier hoe toegang te krijgen tot de pakketelementen? Om toegang te krijgen tot de elementen die zijn gedefinieerd en geïmplementeerd in een pakket, gebruiken we de puntnotatie (.). Volgens welke om toegang te krijgen tot het pakketelement, moet u eerst de naam van uw pakket schrijven, gevolgd door de punt (.) operator en vervolgens de naam van het pakketelement.

Voorbeeld:

Stel bijvoorbeeld dat u de PL/SQL-functie prnt_strng van ons pakket pkg_RebellionRider wilt aanroepen.

--Package Calling Function
BEGIN
  DBMS_OUTPUT.PUT_LINE (PKG_RebellionRider.PRNT_STRNG);
END;

In de bovenstaande code die anoniem blok gebruikt, roepen we de functie prnt_strng van het pakket pkg_RebellionRider aan.

U kunt de video-tutorial over hetzelfde onderwerp bekijken om te zien hoe u de procedure proc_superhero van ons pakket aanroept. Ook heb ik in dezelfde video alle bovenstaande codes in detail uitgelegd. Ik hoop dat je veel plezier zult beleven aan het kijken naar die video. Als dat zo is, zorg er dan voor dat je deelt en leuk vindt.

Je kunt deze blog ook delen met je vrienden of collega's.

Bedankt en een fijne dag verder.


  1. Postgres ontbreekt FROM-clausule invoerfout bij query met WITH-component

  2. Simuleer ORDER BY in SQLite UPDATE om de uniciteitsbeperking aan te pakken

  3. Voorkeursmethode voor het opslaan van wachtwoorden in de database

  4. Hoe maak ik een lijst van actieve / open verbindingen in Oracle?