oracle 存储过程异常处理
想把存储过程中的异常信息,存储到另外一个表里,不知道怎么需要哪些语句?异常信息表里的参数怎么写,前辈们救救,我是小白。给写具体语句,感激不尽createorreplace...
想把存储过程中的异常信息,存储到另外一个表里,不知道怎么需要哪些语句?异常信息表里的参数怎么写,前辈们救救,我是小白。给写具体语句,感激不尽
create or replace procedure day_task is
begin
update_user_zt;
end update_data; 展开
create or replace procedure day_task is
begin
update_user_zt;
end update_data; 展开
2个回答
展开全部
先建一个错误跟踪表
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;
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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
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
);
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
);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询