Oracle儲存過程

2021-08-29 22:19:34 字數 1826 閱讀 7769

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儲存過程的呼叫方式介紹完畢。

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...

ORACLE儲存過程

自定義函式開始 create or replace function fn wftemplateidget templatecategoryid number,organid number,templatemode number return number istemplateid number i...

Oracle 儲存過程

create or replace procedure p 有就替換,沒有就建立 iscursor c is select from emp for update begin for v emp in c loop if v emp.deptno 10 then update emp2 set sa...