Oracle

ORACLE 11g 知道插入失敗的插入記錄詳情

  • June 1, 2018

我已經開始審核使用者在我的 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 文件中獲取被拒絕(由於數據類型不匹配和違反業務規則而被拒絕)記錄。正常路徑載入是預設選項。

以下網址可用於詳細了解。

https://youtu.be/eovTBGAc2RI

總共有 4 個影片。很有幫助。

引用自:https://dba.stackexchange.com/questions/207805