oracle如何打印异常 oracle打印异常信息

在存储过程怎么取得ORACLE异常

sqlcode表示错误代码

目前创新互联公司已为1000+的企业提供了网站建设、域名、雅安服务器托管、网站改版维护、企业网站设计、大渡口网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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;

oracle如何捕获存储过程报错是哪一行

如果数据库是10g及以上版本,可以使用dbms_utility.format_error_backtrace(),这个函数能够返回错误行,可以套用以下格式:

create or replace procedure prc_test(参数) is

v_no number;

begin

select no into v_no from zrp;

exception

when others then

dbms_output.put_line('SQL CODE:'||sqlcode||chr(10)||

sqlerrm||chr(10)||

dbms_utility.format_error_backtrace());

end;

这样写的好处是,当程序发成异常,呗exception捕获后,就会打印出错误信息及发生错误的行号

oracle存储过程异常怎么写

begin  

select into ......................;

exception  

when errorException then  

.................

when others then  

..................

end;

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 如何在Exception Block中打印异常发生所在行

好像是没有这个预定义变量,在PROC里面是可以的,那是C语言,

不过有变通的方法,可以参考一下


本文名称:oracle如何打印异常 oracle打印异常信息
本文网址:http://ybzwz.com/article/hjcpcj.html