Oracle存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常。
Oracle存儲過程可以有無參數存儲過程和帶參數存儲過程。
一、無參程序過程語法
create or replace procedure NoParPro
as ;
begin
;
exception //存儲過程異常
;
end;
二、帶參存儲過程實例
create or replace procedure queryempname(sfindno emp.empno%type) as
sName emp.ename%type;
sjob emp.job%type;
begin
....
exception
....
end;
三、 帶參數存儲過程含賦值方式
create or replace procedure runbyparmeters (isal in emp.sal%type, sname out varchar,sjob in out varchar)
as icount number;
begin
select count(*) into icount from emp where sal>isal and job=sjob;
if icount=1 then
....
else
....
end if;
exception
when too_many_rows then
DBMS_OUTPUT.PUT_LINE('返回值多於1行');
when others then
DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS過程中出錯!');
end;
四、在Oracle中對存儲過程的調用過程調用方式一
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存儲過程調用開始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必須按順序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //過程調用結束
過程調用方式二
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //過程調用開始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值對應變量順序可變
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //過程調用結束
至此,有關ORACLE的基本存儲過程以及對Oracle存儲過程的調用方式介紹完畢。