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

konverter til PROCEDURE pl/sql

Alt du skal ændre er DECLARE (angiver starten af ​​en anonym blok) til CREATE PROCEDURE , med den variabel du i øjeblikket indstiller via en substitutionsvariabel som et formelt argument; så i stedet for:

DECLARE
     veno  emp.empno%type:=&veno;
     vsal  emp.sal%type;
     vexp  number;
BEGIN
...
END;
/

Lav det:

CREATE OR REPLACE PROCEDURE my_proc (veno IN emp.empno%type)
AS
     vsal  emp.sal%type;
     vexp  number;
BEGIN
...
END;
/

Du kan derefter kalde det fra en anonym blok eller i SQL*Plus eller SQL Developer med execute stenografi:

set serveroutput on
execute my_proc(&veno);

Dette eksempel bruger stadig en substitutionsvariabel, så du vil blive forfremmet til den værdi, der skal bruges, men du kan også sende et tal direkte.

Læs mere om oprettelse af procedurer og typerne af parametre .

Du kunne forenkle koden en del for at reducere gentagelser og forespørgsler; slå kasusudtryk og den returnerende klausul op. Men det er ikke direkte relevant.




  1. kubernetes timescaledb statefulset:Ændringer tabt på pod-rekreation

  2. Bash Script loop gennem MySQL

  3. PostgreSQL - Aliaser kolonne og HAVING

  4. Lagring af Apache Hadoop-dataoutput til Mysql-database