Я хочу спросить о регистрации ошибок DML в Oracle У меня есть оригинальный стол с этой структуройOracle DML типа Протоколирование ошибок поле
table_test(
ID Int PK,
test_time date
)
Я также создать таблицу протоколирования ошибок для этого ERR $ _table_test
Насколько я знаю, в поле «ID'
и» test_time'
в ERR$_table_test
является VARCHAR(4000)
Позвольте мне взять пример
1. Insert into table_test values (1,to_date('18/08/2015 15:00:00' , 'dd/mm/yyyy hh24:mi:ss'))
==> успешно, 1 строка вставляется
2. Insert into table_test values (1,to_date('18/08/2015 15:00:00' , 'dd/mm/yyyy hh24:mi:ss'))
==> 0 строка вставляется в table_test, 1 строка в ERR $ _table_test с этой ошибкой: ORA-00001: ограничение уникальности нарушается
3. select * from ERR$_table_test
1 запись найдено: но поле test_time является '18/08/2015' , не имея времени < == Я хочу полный штамп времени для этого поля
После этого, я пытаюсь изменить таблицу ERR $ _table_test
alter table ERR$_table_test modify test_time date
я переделать точно выше пример
На этот раз я получил полную отметку времени test_time в ERR $ _table_test
Но, тогда я попробуйте
Insert into table_test values (2,to_date('abc xyz' , 'dd/mm/yyyy hh24:mi:ss'))
==> ошибка SQL происходит, когда вставки неправильного типа в ERR $ _table_test
Это вещь, которую я обеспокоен
Могу ли я получить полную временную отметку в $ ERR _table_test без изменения его типа столбца?
Если мне нужно изменить тип столбца на DATE, могу ли я получить журнал ошибок для второго случая, когда неправильный формат времени?
Спасибо за любую поддержку,
Вы пытались запустить 'alter session set nls_date_format = 'dd/mm/yyyy hh24: mi: ss');' в сеансе перед тем, как делать вставку? – Boneist