Oracle异常处理问题oracle 过程 异常处理,有以下过程,我想在每次触发异常时回滚事务,该如何更改?
不会在每次异常处理后添加
如果j_StartWork = 1,那么
回滚工作;
如果结束,
酒吧
--------------------------------------------------- --------
创建或替换过程testproc(
in_SheetID,以char表示,
in_Checker in char,
in_OrderNo int,
out_Result out int)是
STATUS_IS_VALID异常;
SHEET_NOT_FOUND例外;
UNKNOW_SHEET_STATUS异常;
QTY_ERROR异常;
开始
j_Result: = 0;
j_StartWork: = 0;
j_startwork: = 1;
j_SheetType: = 2503;
j_BreakPoint: = 2502115;
提交工作;
out_Result: = j_Result;
返回;
例外
然后在SHEET_NOT_FOUND
sMsg: ='未找到文档';
raise_application_error(-20000,'SQLCODE ='|| SQLCODE ||',Breakpoint ='|| j_Breakpoint ||',MSG ='|| sMsg);
然后是STATUS_IS_VALID
sMsg: ='文档状态错误';
raise_application_error(-20000,'SQLCODE ='|| SQLCODE ||',Breakpoint ='|| j_Breakpoint ||',MSG ='|| sMsg);
然后发生QTY_ERROR时
sMsg: ='接收数据验证错误';
raise_application_error(-20000,'SQLCODE ='|| SQLCODE ||',Breakpoint ='|| j_Breakpoint ||',MSG ='|| sMsg);
然后在UNKNOW_SHEET_STATUS时
sMsg: ='未定义状态标志';
raise_application_error(-20000,'SQLCODE ='|| SQLCODE ||'oracle 过程 异常处理,Breakpoint ='|| j_Breakpoint ||',MSG ='|| sMsg);
那时其他人
如果j_StartWork = 1,那么
回滚工作;
如果结束,
raise_application_error(-20000,'SQLCODE ='|| SQLCODE ||','||'Breakpoint ='|| j_Breakpoint ||',MSG ='|| SQLERRM);
结束testproc;
--------解决方案---------------------------------------- ------------------------- -----------------
无需编写太多内容即可定义常见例外.
您的
如果j_StartWork = 1,那么
回滚工作;
如果结束,
只有别人拥有它,
--------解决方案---------------------------------------- ------------------------- -----------------
异常结束后,应自动回滚,而无需手动回滚.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-169003-1.html