儲存過程呼叫

2021-08-31 12:58:15 字數 1821 閱讀 8565

[size=medium][color=blue]**於:

[size=small]儲存過程 包含三部分: 宣告,執行部分,異常。

可以有無引數程式和帶引數儲存過程。

無參程式語法

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 [/size]

Oracle儲存過程呼叫儲存過程

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

呼叫儲存過程

用乙個命令物件呼叫儲存過程,就是定義儲存過程的名稱,給過程的每個引數新增引數定義,然後執行命令。1.呼叫沒有返回值的儲存過程 呼叫儲存過程的最簡單示例是不給呼叫者返回任何值。下面定義了兩個這樣的儲存過程,乙個用於更新現有的region記錄,另乙個用於刪除指定的region記錄。1 記錄的更新 cre...

呼叫儲存過程

呵呵,測試了一下c 呼叫儲存過程 create procedure sp accountrole create categoryid int,rolename nvarchar 10 description nvarchar 50 roleid int output asdeclare count ...