DML Error Logging
вторник, 26 мая 2009 г.
Оставить комментарий
В 10.2 наконец-то появилось логирование ошибок при выполнение dml команд insert, update, delete и merge.
Почитать хорошую статью можно тут: DML Error Logging in Oracle 10g Database Release 2
В документации пример можно посмотреть здесь: Inserting Data with DML Error Logging
Единственно что нужно, это уточнить пару моментов:
- Команда REJECT LIMIT указывает на максимально количество ошибок, которое может произойти, прежде чем statement "отвалится". Представим, что у нас при выполнении statement произойдет 2 ошибки, что будет происходить, если при разных значениях REJECT LIMIT.
- Можно использовать 'simple_expression' для последующей выборки из таблицы логирования по колонке ORA_ERR_TAG$. Особенно это полезно, при параллельном выполнении команд.
- Логирование не работает в следующих случаях:
- есть отложенное ограничение;
REJECT LIMIT | Ошибка? | Логирование | Транзакция |
---|---|---|---|
0 | отрайзится ошибка | в логе будет 1 строка | произойдет автоматический rollback |
1 | отрайзится ошибка | в логе будет 2 строки | произойдет автоматический rollback |
2, больше и UNLIMITED | ошибки не будет! | в логе будет 2 записи | нужно будет подтвердить или откатить транзацию. |
Строки в табличке для логирования появятся в любом случае, так как они добавляются в автономной транзакции.
0 коммент. »
Оставьте Ваш комментарий