sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar lagrade PL/SQL-procedurer med parametrar i Oracle-databasen

I den tidigare handledningen har vi diskuterat hur man skapar lagrad procedur utan parametrar. Men ibland kan det hända att du måste skapa en lagrad procedur som accepterar parametrar. När allt kommer omkring är dessa subrutiner till för att hjälpa dig att lösa ditt problem på enklast möjliga sätt. Därför kommer vi idag i denna blogg att lära oss hur man skapar lagrade procedurer med parametrar i Oracle Database

För dig som är ny på PL/SQL-programmering och undrar vad som är lagrad procedur? Oroa dig inte, jag har gjort en separat blogg för dig som förklarar den grundläggande teorin om den lagrade proceduren. Du kan kolla den bloggen här.

Så låt oss se demonstrationen av hur man skapar PL/SQL lagrad procedur med parametrar!

Steg 1:Skapa rubriken för den lagrade proceduren

I rubriken för proceduren definierar vi dess signatur.

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

Rubriken är ganska lik den som vi såg i förra handledningen förutom att vår procedur denna gång accepterar parametrar som är dep_id och sal_raise av NUMBER datatyp.

Steg 2:Skapa exekveringssektionen för den lagrade proceduren

I exekveringssektionen skriver vi alla körbara satser som definierar hur den lagrade proceduren fungerar.

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

För en bättre förståelse har jag försökt göra den här koden så enkel som möjligt. I exekveringssektionen har vi bara en DML-sats som är UPDATE. Med detta uppdaterar vi lönekolumnen i personaltabellen.

Du kan skriva affärslogiken så här och sedan slå in dem i en procedur och anropa dem i din app när det behövs. Detta ger dig mer kontroll över din app. Det kommer också att rädda dig från att skriva samma kod om och om igen.

Denna procedur kommer att acceptera två parametrar som är avdelnings-id och det numeriska värdet för löneökning. Den första parametern som är dep_id, används för att bestämma avdelningens ID. Den andra parametern som är sal _höjning blir multiplikationsfaktorn i lönehöjningen.

För en mer djupgående förståelse av detsamma, se videohandledningen på min YouTube-kanal. Där har jag förklarat varenda rad och nyckelord i ovanstående lagrade procedur i detalj.

Låt oss kombinera alla ovanstående kodbitar till en enda som heter PL/SQL-enhet.

Lagrad procedur för avdelningsövergripande lönehöjning

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 väl har skapat din lagrade procedur måste du anropa den i ditt program eller din kod. I den senaste handledningen visade jag dig olika sätt att anropa en procedur i Oracle-databasen. Du kan hänvisa till den självstudien för detsamma.

Det är handledningen om hur man skapar PL/SQL lagrad procedur med parametrar i Oracle Database. Vänligen dela det på dina sociala medier och hjälp andra att lära sig.

Det var det för idag. Ha en bra dag!


  1. Infoga, vid dubblettuppdatering i PostgreSQL?

  2. WAMP Kan inte komma åt på det lokala nätverket 403 Förbjudet

  3. Postgres kopierar Heroku Production DB till lokal utveckling DB

  4. SQL Server Express vs express localdb