码迷,mamicode.com
首页 > 数据库 > 详细

oracle DML错误日志(笔记)

时间:2015-01-12 18:55:52      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

DML错误日志是oracle10gR2引入的一个类似于SQL*Loader的错误日志功能。它的基本原理是把任何可能导致语句失败的记录转移,放到一张错误日志表中。

具体使用如下:

1、使用DBMS_ERRLOG.CREATE_ERROR_LOG来创建错误日志表

--原表my_test表结构
desc my_test  
Name   Type         Nullable Default Comments 
------ ------------ -------- ------- -------- 
SID    NUMBER                                 
NAME   VARCHAR2(20) Y                         
GENDER INTEGER      Y                         
AGE    NUMBER       Y                         
HOBBY  VARCHAR2(20) Y   


--执行下面的语句,生成错误日志表
execute dbms_errlog.create_error_log(‘my_test‘,‘my_test_bad‘);
 
PL/SQL procedure successfully completed.

--生成的错误日志表my_test_bad结构
desc my_test_bad
Name            Type           Nullable Default Comments 
--------------- -------------- -------- ------- -------- 
ORA_ERR_NUMBER$ NUMBER         Y                         
ORA_ERR_MESG$   VARCHAR2(2000) Y                         
ORA_ERR_ROWID$  UROWID(4000)   Y                         
ORA_ERR_OPTYP$  VARCHAR2(2)    Y                         
ORA_ERR_TAG$    VARCHAR2(2000) Y                         
SID             VARCHAR2(4000) Y                         
NAME            VARCHAR2(4000) Y                         
GENDER          VARCHAR2(4000) Y                         
AGE             VARCHAR2(4000) Y                         
HOBBY           VARCHAR2(4000) Y                         

其中ORA_ERR_TAG$这个字段可以存放用户自定义的数据

2、在insert语句中使用my_test_bad错误日志表

insert into my_test
  (sid,name,gender,age,hobby)
  values (12,‘joy‘,2,‘age‘,‘book,football,run‘)
  log errors into my_test_bad;
 
insert into my_test
(sid,name,gender,age,hobby)
values (12,‘joy‘,2,‘age‘,‘book,football,run‘)
log errors into my_test_bad
 
ORA-01722: 无效数字
 
SQL> select * from my_test_bad;--(结果不规范,用图展示)  

  技术分享

update,delete,merge语句都可以在后面声明错误日志,方法相同。如:

  update my_test
     set age = ‘yyy‘
   where sid = 12 
   log errors into my_test_bad;

  

注意事项:log errors子句不引起隐式提交,也就是说,即使回滚了失误,错误信息还是会保存在错误日志表中。

 

oracle DML错误日志(笔记)

标签:

原文地址:http://www.cnblogs.com/mozizhu/p/4218692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!