
正文
oracle如何获取异常 怎么取得oracle的异常
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在存储过程怎么取得ORACLE异常
sqlcode表示错误代码
ora-01100
ora-09872
之类的
sqlerrm
表示错误信息
parallel
query
server
die
之类
insert
into
select
a
,b
,c
from
table;
commit;
-----------------------------
取得异常:
exception
when
others
then
vc_sqlcode
:=
sqlcode;
vc_sqlmsg
:=
substr(sqlerrm,2,100);
rollback;
end;
相关问答
Q1: Oracle 如何捕获异常信息
一般写在存储过程处理异常。
exception
when others then
out_mes:=out_mes || '执行失败!因为'|| sqlcode || '错误' ;
out_mes你自己可以处理,插入日志表中 或作为输出参数。
Q2: oracle怎么获取exception信息?
通过RAISE弹出框(调试时使用)
通过sqlcode,sqlerrm这两个内置变量来查看,
例如:DECLARE--声明异常some_kinds_of_errEXCEPTION;--Exceptiontoindicateanerrorconditionv_ErrorCodeNUMBER;--Variabletoholdtheer..
为了提高存储过程的健壮性,避免运行错误,当建立存储过程时应包含异常处理部分.
Q3: 有关在Oracle里怎样捕获出错?怎样出错回滚rollback
1、出现异常,会自动回滚,不用为了回滚而捕获异常
2、如需要对异常进行处理,可参考以下异常捕获逻辑
begin
--代码处理逻辑。。。
exception
when no_data_found then
--no_data_found异常处理。。。
rollback;
when others then
--其他异常处理。。。
rollback;
以上。
Q4: oracle存储过程,如何获得详细的错误信息
create or replace procedure proc_test( strAge in string, strName in string, ret_code out string, v_error_message out string) is
begin
declare
strsql varcchar(1024);
v_error_desc varcchar(1024);
begin
v_error_desc :='student';
strsql :='select name from student where age=100';
execute immediate strsql using strAge ;
v_error_desc :='teacher';
strsql :='select age from teacher where name=jill';
execute immediate strsql using strName ;
ret_code:=0;
v_error_desc :='OK';
v_error_message:='OK';
EXCEPTION
WHEN OTHERS THEN
ret_code := sqlcode;
v_error_desc := '错误位置:' || v_error_desc;
v_error_message := sqlerrm;
rollback;
end;
end proc_cancel_digital_id;
Q5: 请教各位高手 oracle 存储过程 如何获得 捕获异常的内容
--通过sqlcode , sqlerrm 这两个内置变量来查看,例如:
DECLARE
--声明异常
some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition
v_ErrorCode NUMBER; -- Variable to hold the error message code
v_ErrorText VARCHAR2(200); -- Variable to hold the error message text
BEGIN
--...
--抛出异常
IF ( ... ) THEN --(括号内填抛出异常的条件)
RAISE some_kinds_of_err;
END IF;
--...
EXCEPTION
--捕捉异常
WHEN some_kinds_of_err THEN
/* do something to Handler the errors */
null;
--捕捉其他异常,并获得 捕获异常的内容
WHEN OTHERS THEN
v_ErrorCode := SQLCODE;
v_ErrorText := SUBSTR(SQLERRM, 1, 200);
-- Note the use of SUBSTR here.
dbms_output.put_line(v_ErrorCode || '::'||v_ErrorText);
END;
/
/**
sqlcode 就是错误代码
sqlerrm 就是sql错误信息。注意用substr来截取,否则输出很难看。
**/
oracle如何获取异常的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么取得oracle的异常、oracle如何获取异常的信息别忘了在本站进行查找喔。







