oracle11g - ORACLE 11g 知道插入失败的插入记录详情
问题描述
我已经开始审核用户在我的 oracle 11g 数据库中的任何表失败时的插入记录。我已经使用以下命令来做同样的事情。
AUDIT INSERT ANY TABLE BY SHENA BY ACCESS WHENEVER NOT SUCCESSFUL;
我想知道每当记录插入失败时,我能知道哪些记录未能插入到表中。
我们在哪里可以看到这样的信息。或者,如果您知道任何其他审计方式,请提出建议。我知道的一种方法是在插入时编写触发器。在该触发器中处理插入失败异常并将这些值保存到某个表中。
解决方案
使用具有以下控制文件格式的 SQL 加载器实用程序。
options(skip=1,rows=65534,errors=65534,readsize=16777216,bindsize=16777216)
load data
infile 'c:\users\shena\desktop\1.txt'
badfile 'C:\Users\shena\Desktop\test.bad'
discardfile 'C:\Users\shena\Desktop\test.dsc'
log 'C:\Users\shena\Desktop\test.log'
append
into table ma_basic_bd
fields terminated by '|' optionally enclosed by '"' trailing nullcols
(fs_perm_sec_id,
"DATE" "to_date(:DATE,'YYYY-MM-DD')",
adjdate "to_date(:adjdate,'YYYY-MM-DD')",
currency,
p_price,
p_price_open,
p_price_high,
p_price_low,
p_volume)
要求您使用常规路径加载,以便我们可以在 .bad 文件中获取被拒绝(由于数据类型不匹配和违反业务规则而被拒绝)记录。常规路径加载是默认选项。
以下网址可用于详细了解。
总共有 4 个视频。很有帮助。
推荐阅读
- python-3.x - 如何在 python 运行时添加导入语句?
- centos7 - 在受限网络中的 cent OS 上进行 yum 更新
- python - 在浮点数列表中仅将零更改为整数
- cmd - dir命令cmd中的特殊字符不起作用
- nativescript - 当我尝试在 Sidekick 中自动生成证书时出现“不支持的帐户”错误
- python-3.x - 熊猫没有正确读取标题
- haskell - Haskell:如何在纯函数中产生副作用
- blockchain - 我在以太坊私有区块链中使用 bootnode 连接了两个笔记,但没有开始挖矿,为什么?
- macos - 如何在不改变代码行为的情况下对 Mac OSX 可执行文件进行代码设计
- c# - C# strange precision lost int to float and backwards