Oracle 儲存過程 捕獲異常

2022-03-25 03:28:05 字數 1049 閱讀 4201

1、帶引數插入並帶返回值,異常資訊

create

orreplace

procedure test_pro (v_id in

int,v_name in

in 是輸入引數;out 輸出引數

isbegin

insert

into proc_test (id,name) values (v_id,v_name); --

往表中插入一條資料

8; --

執行狀態碼,8 成功;9失敗

error_msg:=

'執行成功

'; --

執行執行結果

commit; --

提交事務

exception

rollback; --

回滾提交的事務

when others then

=9; --

執行狀態碼,8 成功;9失敗

error_msg:=substr(sqlerrm, 1, 200); --

返回報錯資訊

--儲存過程呼叫失敗,往儲存過程日誌表追加一條記錄,方便以後查詢;第乙個引數:呼叫儲存過程名,第二個引數:錯誤資訊

insert

into proc_error (proc_name,msg_error) values ('

test_pro

',error_msg);

commit; --

重新提交事務,記錄日誌

end;

呼叫

--

呼叫儲存過程

declare

number; --

宣告變數,用於接收狀態碼

msg_error varchar(200); --

宣告變數,用於接收錯誤資訊

begin

test_pro(

2,'222'--

輸出狀態碼

dbms_output.put_line(msg_error); --

輸出錯誤資訊

end;

MySql儲存過程捕獲異常回滾

drop procedure if exists pro test create procedure pro test para a varchar 50 para b varchar 50 begin declare result code integer default 0 定義返回結果並賦初值...

oracle中儲存過程的三種異常捕獲方式

oracle中儲存過程的異常分為 1.預定義異常 oracle已經定義了乙個常量用於表示異常編號 異常 錯誤編號 常量名稱 除數為0 01476 zero divide 案例 create or replace procedure test asc int begin c 10 0 exceptio...

ORACLE儲存過程異常處理。

create or replace procedure p tx getfaxdata as v errorcode number 出錯的 v errormsg varchar2 200 錯誤的訊息顯示 v currentuser varchar2 8 當前資料庫使用者 v information ...