Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1849
  • 博文数量: 3
  • 博客积分: 31
  • 博客等级: 民兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-30 16:24
文章分类
文章存档

2012年(3)

我的朋友
最近访客

分类:

2012-05-30 16:30:49

原文地址:oracle高级异常处理 作者:alang85

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;
阅读(117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~