oracle procedure儲存過程

2021-09-07 14:19:29 字數 2017 閱讀 1301

create

orreplace

procedure

儲存過程名字

( 引數1

innumber

, 引數2

innumber

) is/as

變數1

integer :=0;

變數2 date;

begin..

.end 儲存過程名字

將select查詢的結果存入到變數中,可以同時將多個列(字段)儲存到多個變數中,必須有一條記錄,否則丟擲異常(如果沒有記錄,丟擲no_data_found)

例子:

begin

select col1,col2 into 變數1,變數2 from typestruct where

***;

exception

when no_data_found then

rollback

; raise;

end;

if    條件1    then

do someting

elsif 條件2

then

do someting

elsif 條件3

then

do someting

else

do someting

endif;

while v_test=

1loop

begin

***x

end;

end loop;

v_test :=

123;

... 

iscursor cur is

select

*from

***;

begin

for cur_result in

cur loop

begin

v_sum :

=cur_result.列名1+

cur_result.列名2

end;

endloop;

end;

連線資料庫後建立乙個test window

在視窗輸入呼叫sp的**,f9開始debug,ctrl+n單步除錯

1)儲存過程引數不帶取值範圍,in表示傳入,out表示輸出;

2)變數可帶取值範圍,後面接分號;

3)在判斷語句前最好先用count(*)函式判斷是否存在該條操作記錄

4)用select...into...給變數賦值

5)在**中丟擲異常用raise;通常的用法:

exception

when others then

rollback

; raise;

/*異常分很多類,如no_data_found。others處本應該寫異常名稱,如果不想把異常分得那麼細,可以籠統一點用others來捕獲,即所有異常均用others來捕獲。

when others then 表示是其它異常。

raise表示丟擲異常,讓user可以看到。

*/

6)as/is的區別

在試圖(view)中只能用as不能用is

在游標(cursor)中只能用is不能用as

7)輸出變數賦值有兩種,一種是直接:=,還有一種就是select into

8)顯示除錯資訊

a.儲存過程中在必要的位置新增

dbms_output.put_line('

hi');

b.開啟dbms_output

show serveroutput;

set serveroutput on;

9)刪除procedure

drop

procedure procedure_name;

oracle procedure 儲存過程

oracle 儲存過程的基本語法 1.基本結構 create or replace procedure 儲存過程名字 引數1 in number,引數2 in number is 變數1 integer 0 變數2 date begin end 儲存過程名字 2.select into statem...

Oracle procedure呼叫例項

oracle經常需要進行一些儲存過程來進行其它資料庫呼叫或資料庫資料智慧型更新,下面就乙個例項來展示其全過程。首先,編寫乙個procedure 文字。然後,登陸sql developer 新增procedure 單擊procedure 新建,輸入乙個名字,單擊確定。然後將寫好的語句接入 begin ...

mysql儲存過程now mysql儲存過程

建立清除過期積分儲存過程 delimiter drop procedure if exists reporturl create procedure reporturl begin 定義變數 declare s int default 0 declare sum integral varchar 2...