程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle存儲過程語法

oracle存儲過程語法

編輯:Oracle數據庫基礎
存儲過程 包含三部分: 聲明,執行部分,異常。 
可以有無參數程序和帶參數存儲過程。 
無參程序語法 
1 create or replace procedure NoParPro
2 as   ;
3 begin
4  ;
5 exception
6      ;
7 end;
8

存儲過程 包含三部分: 聲明,執行部分,異常。
可以有無參數程序和帶參數存儲過程。
無參程序語法
1 create or replace procedure NoParPro
2 as   ;
3 begin
4  ;
5 exception
6      ;
7 end;
8

   帶參存儲過程實例
 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

  過程調用
  方式一
 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved