Oracle
 sql >> база данни >  >> RDS >> Oracle

конвертирайте в ПРОЦЕДУРА pl/sql

Всичко, което трябва да промените, е DECLARE (указващ началото на анонимен блок) за CREATE PROCEDURE , с променливата, която в момента задавате чрез заместваща променлива като формален аргумент; така че вместо:

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

Направи го:

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

След това можете да го извикате от анонимен блок или в SQL*Plus или SQL Developer с execute съкратено:

set serveroutput on
execute my_proc(&veno);

Този пример все още използва променлива за заместване, така че ще бъдете повишени за стойността, която да използвате, но можете също да подадете число директно.

Прочетете повече за създаването на процедури и типовете параметри .

Можете да опростите кода доста, за да намалите повторенията и повторните заявки; потърсете case изрази и клаузата за връщане. Но това не е пряко уместно.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Apex:Създайте лента за напредък, когато чакате резултат

  2. Как да получа тип данни на колона в Oracle с PL-SQL с ниски привилегии?

  3. Как да направите заявка за преброяване въз основа на ден в oracle sql

  4. Извличане на данни от таблицата чрез PL/SQL

  5. Как да настроите Oracle EBS Auditing