【问题标题】:ORACLE 11g Know Insert Record Details which Failed to insertORACLE 11g 知道插入失败的插入记录详情
【发布时间】:2018-11-04 10:41:12
【问题描述】:

我已开始审核用户对我的 oracle 11g 数据库中任何表的插入记录失败。我已经使用以下命令来做同样的事情。

AUDIT INSERT ANY TABLE BY SHENA BY ACCESS WHENEVER NOT SUCCESSFUL;

我想知道每当记录插入失败时,我能知道哪些记录未能插入到表中。

我们可以在哪里看到这些信息。或者,如果您知道任何其他审计方式,请提出建议。我知道的一种方法是在插入时编写触发器。在该触发器中处理插入失败 EXCEPTION 并将这些值保存到某个表中。

【问题讨论】:

    标签: oracle11g audit-trail


    【解决方案1】:

    使用具有以下控制文件格式的 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 文件中获取被拒绝(由于数据类型不匹配和违反业务规则而被拒绝)记录。常规路径加载是默认选项。

    以下网址可用于详细了解。

    https://youtu.be/eovTBGAc2RI

    总共有 4 个视频。很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2014-07-21
      相关资源
      最近更新 更多