Oracle儲存過程

2021-09-01 11:04:37 字數 2237 閱讀 7843

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