ORACLE 11g Знать сведения о записи вставки, которые не удалось вставить - PullRequest
0 голосов
/ 25 мая 2018

Я начал аудит записей вставки пользователем при сбое в любой таблице в моей базе данных Oracle 11g.Я использовал следующую команду, чтобы сделать то же самое.

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

Я хотел бы знать, когда вставка записи не удастся, Могу ли я узнать, какие записи не удалось вставить в таблицу.

Где мы можем увидеть такую ​​информацию.Или, если вы знаете какой-либо другой способ проверки того же самого, пожалуйста, предложите.Один способ, который я знаю, это написать триггер на вставке.В этот дескриптор триггера вставьте ошибку EXCEPTION и сохраните эти значения в некоторой таблице.

1 Ответ

0 голосов
/ 30 мая 2018

Используйте SQL Loader Utility со следующим форматом управляющего файла.

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 файле.Обычный путь загрузки является вариантом по умолчанию.

Следующий URL может использоваться для подробных знаний.

https://youtu.be/eovTBGAc2RI

Всего 4 видео.Очень полезно.

...