代码之家  ›  专栏  ›  技术社区  ›  Shekhar Nalawade

ORACLE 11g知道无法插入的插入记录详细信息

  •  0
  • Shekhar Nalawade  · 技术社区  · 6 年前

    我已经开始审核用户在oracle 11g数据库中任何表出现故障时插入的记录。我使用了下面的命令来做同样的事情。

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

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

    在那里我们可以看到这样的信息。或者,如果你知道任何其他审计相同的方式,请建议。我知道的一种方法是在insert上写一个触发器。在那个触发器句柄插入失败 例外 并将这些值保存到某个表中。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Shekhar Nalawade    6 年前

    将SQL Loader实用程序与以下控制文件格式一起使用。

    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)
    

    我们要求您使用传统的路径加载,以便我们可以在中获取被拒绝(由于数据类型不匹配和违反业务规则而被拒绝)的记录。坏文件。常规路径加载是默认选项。

    下面的URL可以用于详细的知识。

    https://youtu.be/eovTBGAc2RI

    总共有4个视频。非常有帮助。