oracle 存储过程异常处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 存储过程异常处理相关的知识,希望对你有一定的参考价值。
想把存储过程中的异常信息,存储到另外一个表里,不知道怎么需要哪些语句?异常信息表里的参数怎么写,前辈们救救,我是小白。给写具体语句,感激不尽
create or replace procedure day_task is
begin
update_user_zt;
end update_data;
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;本回答被提问者采纳 参考技术B create or replace procedure day_task is
l_err varhcar2(1000);
begin
update table set aaa='aaa' where tableId=1;
--正确的,
EXCEPTION
WHEN OTHERS THEN
如果错误出有个SQLERRM。把它存储就知道错误了
l_err := SUBSTR(SQLERRM, 1, 100);
INSERT INTO ERROR_TABLE
VALUES
('标识', l_err, CURRENT_DATE);
RAISE;
END;
CREATE TABLE ERROR_TABLE
(
IDF VARHCAR2(50),
ERR_MAG VARCHAR2(500),
DATE DATE
);
以上是关于oracle 存储过程异常处理的主要内容,如果未能解决你的问题,请参考以下文章