oracle如何写异常处理,Oracle异常

oracle的select怎么处理异常

要保证不中断,需要用游标,单个记录进行插入,异常记录插入错误信息表

创新互联专注于武川网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供武川营销型网站建设,武川网站制作、武川网页设计、武川网站官网定制、重庆小程序开发服务,打造武川网络公司原创品牌,更为您提供武川网站排名全网营销落地服务。

declare

begin

for rec in (select * from b) loop

begin

insert into a

select * from b where ...;

exception when otherst then

insert into err_msg

select * from b where ...;

end;

end loop;

end;

关于ORACLE异常处理的问题

很显然在p2中 异常exp1没有定义,而p1中 exp1进行过初始化, 所以p1认识exp1,erp2不认识(将其当做其它)

你可以给exp1定义一个异常号码,这样在p2中截获异常时通过对异常号码进行判断。

或者把他们放到一个oracle包中,将exp1 定义为 包变量,这样p1中初始化过exp1,p2中也可以使用了。

oracle 存储过程异常处理

先建一个错误跟踪表

create sequence s_error_id;

CREATE TABLE ERROR_RECORD

(

ERROR_ID NUMBER(10) primary key,

ERROR_CODE NUMBER(10),

ERROR_MSG VARCHAR2(2000),

ERROR_DATE DATE,

ERROR_PROGRAM VARCHAR2(200)

);

--------在过程的例外里向跟踪表写入错误信息:

create or replace procedure day_task is

v_sqlcode ERROR_RECORD.ERROR_CODE%type;

v_msg ERROR_RECORD.error_msg%type;

begin

------program body

exception when others then

--记录错误信息表

v_sqlcode :=sqlcode;

v_msg :=sqlerrm;

insert into error_record(error_code,error_msg,error_date,error_program)

values (v_sqlcode,v_msg,sysdate,‘day_task’);

end;

oracle 存储过程中出现异常的处理

异常是执行这个存储过程出的异常吧,那就是说只有执行一次这个存储过程才会抛一次异常么?如果这样我建议你可以再写个存储过程来调用你这个存储过程,这样来记录异常的次数。然后再进行处理!


分享文章:oracle如何写异常处理,Oracle异常
转载来于:http://pwwzsj.com/article/hsejpg.html