[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 ...