oracle异常处理
1,在数据库新建一个表和sequence
新建表
create table PROCEDURE_ERROR
(
PRO_ID NUMBER,
PRO_NAME VARCHAR2(30),
SQL_CODE NUMBER,
SQL_ERRM VARCHAR2(255),
CREATE_TIME DATE default sysdate
)
新建sequence
create sequence SEQ_PRO_ID
minvalue 0
maxvalue 999999999999999999999999999
start with 1
increment by 1
CACHE 20;
在存储过程中定义变量或者在包头定义全局变量
v_sqlcode number;
v_sqlerrm varchar2(255);
在存储过程中加入异常处理
exception
when others then
rollback;
v_sqlcode := sqlcode;
v_sqlerrm := sqlerrm;
insert into procedure_error
(pro_id, pro_name, sql_code, sql_errm)
values
(SEQ_procedure_ID.Nextval,
'存储过程名',
v_sqlcode,
v_sqlerrm);
commit;
阅读(1072) | 评论(2) | 转发(1) |