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_badORA-01722: 无效数字SQL> select * from my_test_bad;--(结果不规范,用图展示)

  

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

  update my_testset age = 'yyy'where sid = 12 log errors into my_test_bad;

  

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

转载于:https://www.cnblogs.com/mozizhu/p/4218692.html

oracle DML错误日志(笔记)相关推荐

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

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

  2. oracle 1555错误,日志ORA-1555错误解决

    ORA-1555错误简单的说就是针对一个数据块产生一致读时发生了错误.一致读就是指ORACLE利用回滚段来临时重构一个和事务或查询开始时的块状态相同的快照块的过程.如果一个块改变了多次,可能就会有多个 ...

  3. DBMS_ERRLOG记录DML错误日志(一)

    当一个DML运行的时候,如果遇到了错误,则这条语句会整个回滚,就好像没有执行过.不过对于一个大的DML而言,如果个别数据错误而导致整个语句的回滚,会浪费很多的资源和运行时间,从10g开始Oracle支 ...

  4. oracle打开错误日志文件,Oracle联机日志出现错误ORA-16038 ORA-19809 ORA-00312 解决

    出现ORA-16038 ORA-19809 ORA-00312 Oracle 10g默认的归档日志存放在flash_recovery_area,而默认安装的时候该区间选择了2G大小当归档日志超过2G的 ...

  5. oracle crs错误日志,集群日志中出现CRS-2316 / CRS-2317错误

    在查看11G数据库的集群日志时,发现了CRS-2316 / CRS-2317的错误: CRS-2317:Fatal error: cannot get local GPnP security keys ...

  6. oracle rac 错误日志路径,ORACLE 11G RAC--日志路径

    ORACLE集群在做问题排查时,需要查看日志.这些日志都集群中都是存放在那里的? 1.集群相关日志主要放在$ORACLE_CRS_HOME/log,$ORACLE_HOME/log中. $ORACLE ...

  7. oracle 查找错误日志位置

    show parameter background_dump_dest; 一般的位置会在/data/u01/app/oracle/diag/rdbms/orcl/orcl/trace

  8. Oracle学习笔记 --- Oracle ORA错误解决方案

    今天在Debug的时候报错了如下信息: 后来综合了网上的东西,总结如下: ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-000 ...

  9. oracle数据库报300006,Oracle归档日志所在目录时间不对Oracle集群日志时间显示错误...

    Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 Oracle归档日志所在目录时间不对&&Oracle集群日志时间显示错误 前言 这个问题在18 ...

最新文章

  1. weblogic公布的项目用途myeclipse正常启动,点击startWeblogic.cmd报错解决方案
  2. 在Cisco路由器中配置DHCP服务器
  3. 电子工程可以报考二建_电子科学与技术专业能报考二级建造师吗?
  4. codeforces round25
  5. csgo卡程序关不掉_微信推QQ小程序,取代QQ?网友:这功能有用?
  6. python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...
  7. varnish服务器在内存大量富余时使用交换空间的原因及解决方法
  8. 【codevs2304】【BZOJ1875】HH去散步,第一次的矩阵加速DP
  9. 12306网站将新增微信通知方式
  10. 来!把 5000 微信好友头像拼成一张图!
  11. fileziller 恢复 站点管理器 内的ftp帐号方法
  12. jsp和mysql的乱码问题_jsp和servlet操作mysql中文乱码问题的解决办法
  13. 推荐几款国产快速启动工具软件 总有一款适合你的
  14. html调整背景页面的大小,css如何设置背景图片大小
  15. 《Linux内核设计与实现》读书笔记(四)- 进程的调度
  16. STP配置 HSRP配置 端口追踪
  17. 解决“该文件夹包含名称过长且无法放入回收站的项目”导致无法删除
  18. ArrayList和LinkedList的区别以及优缺点
  19. vue中src路径的写法
  20. 5.23 C语言练习(平均值计算:输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。)

热门文章

  1. Android 编码规范:(五)避免创建不必要的对象
  2. 在Word 2007中轻松插入或创建表格
  3. [Python] L1-041 寻找250-PAT团体程序设计天梯赛GPLT
  4. 蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)
  5. L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
  6. java中JTextArea类_Swing JTextArea类
  7. echarts里面的参数解释_SPMSM控制:传统PI速度环参数的整定
  8. python 浮点数比较_Python中的浮点数
  9. Docker Image执行流程
  10. Linux下安装informix11.5数据库