sql >> Database teknologi >  >> RDS >> Oracle

Sådan opretter du PL/SQL-pakker i Oracle-databasen

I den forrige tutorial dækkede vi alle de nødvendige teorier om PL/SQL-pakker i Oracle Database. Der lærte vi, hvad pakker er, deres arkitektur og syntaksen for at skabe det samme. Nu hvor vi har set alle de teorier, der kræves for at besvare spørgsmålene i din certificeringseksamen og dit interview, er det tid til at tage et skridt foran og lave et eksempel, der viser processen med at skabe en PL/SQL-pakke i Oracle Database. 

Hvordan opretter man en pakke?

Til demonstrationen vil jeg lave en meget simpel pakke, som vil bestå af to elementer – en funktion og en lagret procedure. Jeg har forsøgt at holde dette eksempel så enkelt som muligt for at holde konceptet let at forstå.

Som vi talte, mens vi diskuterede pakkens arkitektur i den forrige tutorial, er pakken opdelt i to dele, som er

  • Pakkehoved og
  • Pakketeksten

Så vi starter med at oprette pakkehovedet først

Pakkehoved

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

Ved at tage et kig på ovenstående kode kan vi tydeligt sige, at pakken kommer til at indeholde to pakkeelementer, som er – en PL/SQL funktion prnt_strng og en lagret procedure proc_superhero.

Pakketekst

--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 ovenstående kode for pakkelegemet implementerede vi begge pakkeelementer, som vi definerede i pakkehovedet.

Infobyte
Både pakkehoved og brødtekst er individuelle databaseobjekter, så du skal kompilere dem separat for at sætte din pakke i gang.

Hvordan får man adgang til pakkeelementerne?

Vi har vores pakkehoved og -tekst oprettet og kompileret med succes, hvad er det næste? Som alle andre databaseobjekter tjener pakken et unikt formål. Ved at bruge en pakke kan du gruppere forskellige databaseobjekter under ét navn, og da PL/SQL-pakker er navngivne databaseblokke, så kan de gemmes i databasen og kan bruges senere, når det er nødvendigt.

Så spørgsmålet opstår her er, hvordan man får adgang til pakkeelementerne? For at få adgang til de elementer, der er defineret og implementeret i en pakke, bruger vi prik (.) notation. For at få adgang til pakkeelementet skal du først skrive navnet på din pakke efterfulgt af prik (.) operator og derefter navnet på pakkeelementet.

Eksempel:

Sig for eksempel, at du vil kalde PL/SQL-funktionen prnt_strng i vores pakke pkg_RebellionRider.

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

I ovenstående kode ved hjælp af anonym blok kalder vi funktionen prnt_strng af pakken pkg_RebellionRider.

Du kan se videovejledningen om det samme emne for at se, hvordan du kalder proceduren proc_superhero i vores pakke. Også i den samme video har jeg forklaret alle ovenstående koder i detaljer. Jeg håber, du vil nyde at se den video. Hvis ja, så sørg for at dele og like.

Du kan også dele denne blog med dine venner eller kolleger.

Tak og hav en god dag.


  1. En introduktion til MySQL-datatyper

  2. Installer SQL Server 2016

  3. En oversigt over indeksændringerne i PostgreSQL 11

  4. Logger du ALLE forespørgsler på en SQL Server 2008 Express-database?