oracle如何捕获错误 oracle捕获异常,如何不终止

oracle中怎么获得sql语句的错误信息

有一种办法,可以对表进行审计。

专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业嘉禾免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

init文件的参数必须:

audit_trail=DB

比如:

用user用户登陆.打算对表user.test的插入操作做审计.

操作如下:

audit insert on user.test;

执行你的语句:

insert into test values (....);

查询sql执行情况:

select * from sys.aud$;

有关在Oracle里怎样捕获出错?怎样出错回滚rollback

1、出现异常,会自动回滚,不用为了回滚而捕获异常

2、如需要对异常进行处理,可参考以下异常捕获逻辑

begin

--代码处理逻辑。。。

exception

when no_data_found then

--no_data_found异常处理。。。

rollback;

when others then

--其他异常处理。。。

rollback;

以上。

oracle怎么获取exception信息

通过如下代码:

public static String getExceptionAllinformation(Exception ex){

String sOut = "";

StackTraceElement[] trace = ex.getStackTrace();

for (StackTraceElement s : trace) {

sOut += "\tat " + s + "\r\n";

}

return sOut;

}

扩展资料:

注意事项

oracle存储过程,可以通过sqlcode 获取异常编码、通过sqlerrm获取异常信息。

例子:

create or replace procedure write2blob(p_id        in number, --id

p_blob_data in blob,

p_msg       out varchar2) --数据

is

v_lobloc     blob; --目标blob

v_blob_data blob; --作为接受参数的字段,参数变量不能直接拿来赋值

v_amount     binary_integer; --总长度

v_sub_length binary_integer; --一次读取的最大长度,不超过32766

v_sub_blob   blob; --一次读取的子串

v_offset     binary_integer; --游标

v_err_msg    varchar2(1000);

v_id         binary_integer; --要修改或新增的记录ID

v_temp       binary_integer; --临时变量用于判断是否有v_id对应的记录begin

v_amount     := length(p_blob_data);

v_blob_data  := p_blob_data;

v_sub_length := 32767;

v_offset     := 1;

v_id         := p_id;

v_temp       := 0;  --execute immediate v_query_string into v_lobloc;

select count(1) into v_temp from a where id = v_id;  --查询是否有v_id对应的记录,并且赋值给v_te/*注意:无论是修改还是新增,blob字段都需要用empty_blob()进行初始化,否则后边的blob内容,不能写进表里面。

Oracle 如何捕获异常信息

一般写在存储过程处理异常。

exception

when others then

out_mes:=out_mes || '执行失败!因为'|| sqlcode || '错误' ;

out_mes你自己可以处理,插入日志表中 或作为输出参数。


本文名称:oracle如何捕获错误 oracle捕获异常,如何不终止
文章地址:http://scyanting.com/article/hhojog.html