Oracle存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常。
Oracle存儲過程可以有無參數存儲過程和帶參數存儲過程。
一、無參程序過程語法
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
四、在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
至此,有關ORACLE的基本存儲過程以及對Oracle存儲過程的調用方式介紹完畢。
posted on 2008-12-04 14:45
譚明 閱讀(359)
評論(0) 編輯 收藏 所屬分類:
Oracle