oracle 存儲過程調用方式


Oracle存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常。

Oracle存儲過程可以有無參數存儲過程和帶參數存儲過程。 
、無參程序過程語法

 

1 create or replace procedure NoParPro
2 as   ;
3 begin
;
5 exception     //存儲過程異常
6      ;
7 end;


        二、帶參存儲過程實例

 1 create or replace procedure queryempname(sfindno emp.empno%type) as
 2        sName emp.ename%type;
 3        sjob emp.job%type;
 4 begin
 5        ....
 7 exception
          ....
14 end;
15 


    三、 帶參數存儲過程含賦值方式

 1 create or replace procedure runbyparmeters  (isal in emp.sal%type, 
                            sname out varchar,sjob in out varchar)
 2  as icount number;
 3  begin
 4       select count(*) into icount from emp where sal>isal and job=sjob;
 5       if icount=1 then
 6         ....
 9       else
10         ....
12       end if;
13  exception
14       when too_many_rows then
15       DBMS_OUTPUT.PUT_LINE('返回值多於1行');
16       when others then
17       DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS過程中出錯!');
18  end;
19 


  四、在Oracle中對存儲過程的調用
  過程調用方式一

 1 declare
 2        realsal emp.sal%type;
 3        realname varchar(40);
 4        realjob varchar(40);
 5  begin   //存儲過程調用開始
 6        realsal:=1100;
 7        realname:='';
 8        realjob:='CLERK';
 9        runbyparmeters(realsal,realname,realjob);     --必須按順序
10        DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
11  END;  //過程調用結束
12 


  過程調用方式二

 1 declare
 2       realsal emp.sal%type;
 3       realname varchar(40);
 4       realjob varchar(40);
 5 begin    //過程調用開始
 6       realsal:=1100;
 7       realname:='';
 8       realjob:='CLERK';
 9       runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);  --指定值對應變量順序可變
10       DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
11 END;  //過程調用結束
12 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM