mysql dml 日志_Oracle DML错误日志笔记

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

DML错误日志是Oracle 10gR2引入的一个类似于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子句不引起隐式提交,也就是说,即使回滚了失误,错误信息还是会保存在错误日志表中。

本文永久更新链接地址:,

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值