sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar PL/SQL-paket i Oracle Database

I den tidigare handledningen täckte vi alla nödvändiga teorier om PL/SQL-paket i Oracle Database. Där lärde vi oss vad paket är, deras arkitektur och syntaxen för att skapa desamma. Nu när vi har sett alla teorier som krävs för att svara på frågorna i ditt certifieringsprov och din intervju, är det dags att ta steget före och göra ett exempel som visar processen att skapa ett PL/SQL-paket i Oracle Database. 

Hur skapar jag ett paket?

För demonstrationen ska jag skapa ett väldigt enkelt paket som kommer att bestå av två element – ​​en funktion och en lagrad procedur. Jag har försökt att hålla detta exempel så enkelt som möjligt för att begreppet ska vara lätt att förstå.

Som vi pratade när vi diskuterade paketets arkitektur i föregående handledning att paketet är uppdelat i två delar, som är

  • Pakethuvud och
  • Paketets brödtext

Så vi börjar med att skapa pakethuvudet först

Pakethuvud

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

Genom att ta en titt på ovanstående kod kan vi tydligt säga att paketet kommer att innehålla två paketelement som är – en PL/SQL-funktion prnt_strng och en lagrad proc_superhero.

Pakettext

--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;

I ovanstående kod för paketkroppen implementerade vi båda paketelementen som vi definierade i pakethuvudet.

Informationsbyte
Både pakethuvudet och kroppen är individuella databasobjekt, så du måste kompilera dem separat för att få ditt paket att fungera.

Hur får man åtkomst till paketelementen?

Vi har skapat och sammanställt vår paketrubrik och -kropp, vad händer härnäst? Precis som alla andra databasobjekt har paket ett unikt syfte. Med ett paket kan du gruppera olika databasobjekt under ett namn och eftersom PL/SQL-paket kallas databasblock så kan de lagras i databasen och kan användas senare vid behov.

Så frågan uppstår här är hur man kommer åt paketelementen? För att komma åt de element som definierats och implementerats i ett paket använder vi punkt (.) notation. Enligt vilken för att komma åt paketelementet måste du först skriva namnet på ditt paket följt av punkt (.) operator och sedan namnet på paketelementet.

Exempel:

Säg till exempel att du vill anropa PL/SQL-funktionen prnt_strng i vårt paket pkg_RebellionRider.

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

I ovanstående kod med anonymt block anropar vi funktionen prnt_strng för paketet pkg_RebellionRider.

Du kan titta på videohandledningen om samma ämne för att se hur man kallar proceduren proc_superhero för vårt paket. I samma video har jag också förklarat alla ovanstående koder i detalj. Jag hoppas att du kommer att gilla att se den videon. Om så är fallet, se till att dela och gilla.

Du kan också dela den här bloggen med dina vänner eller kollegor.

Tack och ha en bra dag.


  1. Hibernate, Postgres &Array Type

  2. Multi threading C#-applikation med SQL Server-databasanrop

  3. Vilka är fördelarna med att ha en försäljningsdatabas?

  4. Hur deklarerar man variabel och använder den i samma Oracle SQL-skript?