oracle儲存過程包含三部分:過程
宣告,執行過程部分,儲存過程異常。
oracle儲存過程可以有無引數儲存過程和帶引數儲存過程。
一、無參程式過程語法
1createor
replaceprocedure
noparpro
2as3begin
4 5 exception //儲存過程異常
6 7end;8
二、帶參儲存過程例項
1createor
replaceprocedurequeryempname(sfindnoemp.empno
%type)as
2snameemp.ename
% type;
3sjobemp.job
% type;
4begin
5.... 7
exception
....
14end;15
三、 帶引數儲存過程含賦值方式
1createor
replaceprocedurerunbyparmeters(isal
inemp.sal
% type,
snameout
varchar
,sjob
inout
varchar
)2asicount
number
;3begin
4selectcount(*
)intoicountfromempwheresal
>
isal
andjob
= sjob;
5ificount
=1then
6....
9else
10....
12endif;13
exception
14whentoo_many_rowsthen
15dbms_output.put_line(
'返回值多於1行
' );
16whenothersthen
17dbms_output.put_line(
'在runbyparmeters過程中出錯!
' );
18end;19
四、在oracle中對儲存過程的呼叫
過程呼叫
方式一
1declare
2realsalemp.sal
% type;
3realname
varchar(40
);4realjob
varchar(40
);5begin //儲存過程呼叫開始
6realsal:
=1100
;7realname:=''
;8realjob:='
clerk
' ;
9runbyparmeters(realsal,realname,realjob); --
必須按順序
10dbms_output.put_line(realname||'
'||realjob);
11end
; //過程呼叫結束12
過程呼叫方式二
1declare
2realsalemp.sal
% type;
3realname
varchar(40
);4realjob
varchar(40
);5begin//過程呼叫開始
6realsal:
=1100
;7realname:=''
;8realjob:='
clerk
' ;
9runbyparmeters(sname
=>
realname,isal
=>
realsal,sjob
=>
realjob); --
指定值對應變數順序可變
10dbms_output.put_line(realname||'
'||realjob);
11end
; //過程呼叫結束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...