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

Sådan opretter du PL/SQL-lagrede procedurer med parametre i Oracle-databasen

I den forrige tutorial har vi diskuteret, hvordan man opretter en lagret procedure uden parametre. Men nogle gange kan det ske, at du bliver nødt til at oprette en lagret procedure, som accepterer parametre. Når alt kommer til alt, er disse underrutiner der for at hjælpe dig med at løse dit problem på den nemmeste måde. Derfor vil vi i dag i denne blog lære, hvordan man opretter lagrede procedurer med parametre i Oracle Database

For dem, der er nye til PL/SQL-programmering og spekulerer på, hvad er lagret procedure? Bare rolig, jeg har lavet en separat blog til dig, der forklarer den grundlæggende teori om den lagrede procedure. Du kan tjekke den blog her.

Så lad os se demonstrationen af, hvordan man opretter PL/SQL-lagret procedure med parametre!

Trin 1:Opret overskriften til den lagrede procedure

I overskriften på proceduren definerer vi dens signatur.

CREATE OR REPLACE PROCEDURE emp_sal
(dep_id NUMBER, sal_raise NUMBER) 
IS

Overskriften minder ret meget om den, vi så i sidste selvstudie, bortset fra at denne gang accepterer vores procedure parametre, som er dep_id og sal_raise af NUMBER datatype.

Trin 2:Opret udførelsessektionen af ​​den lagrede procedure

I udførelsessektionen skriver vi alle de eksekverbare sætninger, som definerer, hvordan den lagrede procedure fungerer.

BEGIN
  UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id;
END;
/

For en bedre forståelse har jeg forsøgt at gøre denne kode så enkel som muligt. I udførelsessektionen har vi kun én DML-sætning, som er UPDATE. Ved at bruge dette opdaterer vi lønkolonnen i medarbejdertabellen.

Du kan skrive forretningslogikken sådan her og derefter pakke dem ind i en procedure og kalde dem i din app, når det er nødvendigt. Dette vil give dig mere kontrol over din app. Det vil også spare dig for at skrive den samme kode igen og igen.

Denne procedure vil acceptere to parametre, som er afdelings-id og den numeriske værdi for lønstigning. Første parameter, som er dep_id, bruges til at bestemme afdelingens ID. Den anden parameter, som er sal _ raise bliver multiplikationsfaktoren i lønstigningen.

For mere dybdegående forståelse af det samme, se venligst video-tutorialen på min YouTube-kanal. Der har jeg forklaret hver enkelt linje og nøgleord i ovenstående lagrede procedure i detaljer.

Lad os kombinere alle ovenstående kodestykker til en enkelt med navnet PL/SQL-enhed.

Lagret procedure for afdelingsdækkende lønforhøjelse

CREATE OR REPLACE PROCEDURE emp_sal( dep_id NUMBER, sal_raise NUMBER) 
IS
BEGIN
  UPDATE emp SET salary = salary * sal_raise WHERE department_id = dep_id;
END;
/

Når du har oprettet din lagrede procedure, skal du kalde den i dit program eller kode. I den sidste tutorial viste jeg dig forskellige måder at kalde en procedure i oracle database. Du kan se det samme selvstudie.

Det er vejledningen om, hvordan man opretter PL/SQL-lagret procedure med parametre i Oracle Database. Del det gerne på dine sociale medier og hjælp andre med at lære.

Det er det for i dag. Hav en god dag!


  1. 2 måder at returnere rækker, der kun indeholder ikke-alfanumeriske tegn i Oracle

  2. Sådan aktiveres komprimering på en eksisterende tabel i SQL Server (T-SQL)

  3. YEARWEEK() Eksempler – MySQL

  4. Måder at vide, hvordan man håndterer databasekorruption i SQL Server