(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

LOG ERRORS (протоколировать ошибки)

Источник: akarak

В сервере Oracle Database 10 g Release 2 в операторах DELETE, INSERT, MERGE и UPDATE можно использовать новое предложение LOG ERRORS (протоколировать ошибки). Использование этого предложения в операторах массовой обработки данных позволяет записывать строки, при обработке которых произошли ошибки, и не откатывать весь этот оператор.

create table test_el(pole1 integer, pole2 varchar2(100));

exec dbms_errlog.create_error_log ('test_el','test_el_errlog');

Cоздание таблицы для сохранения записей, отклоненных DML-предложением.

test_el_errlog - создаваемая таблица для логов

test_el - исходная таблица

Выполним оператор, в поле POLE1 пытаемся внести символ 'g'

insert into test_el values ('g','что-то') log errors into test_el_errlog reject limit unlimited;

Вставлено: 0 строк

Как видим вставки не произошло.

А теперь посмотрим сдержимое таблицы test_el_errlog

select * from test_el_errlog;

ORA_ERR_NUMBER$  ORA_ERR_MESG$           ORA_ERR_ROWID$  ORA_ERR_OPTYP$ ORA_ERR_TAG$ POLE1 POLE2

---------------------------------  ---------------------------             -----------------------------   -----------------------------  ------------------------- ---------- -----------

1722                            ORA-01722: invalid number                                 I                                                        g          что-то

ORA_ERR_NUMBER$ - номер ошибки

ORA_ERR_MESG$ - который показывает сообщение об ошибке.

ORA_ERR_ROWID$ - заполняется идентификатором этой ROWID при UPDATE и DELETE

ORA_ERR_OPTYP$ - записывается операция при которой возникла ошибка

ORA_ERR_TAG$ - незнаю назначения

Все столбцы таблицы test_el

В таблицу test_el_errlog (некорректные записи для таблицы test_el) будут записываться все строки, которые нарушают ограничения; например, будут протоколироваться ошибки, вызванные слишком большими значениями столбцов, нарушениями ограничений целостности (ограничения NOT NULL, уникальности, ссылочной целостности и проверочные), ошибки,

возникающие при выполнении триггеров, ошибки преобразования типа столбца подзапроса к типу соответствующего столбца таблицы, ошибки распределения строк по секциям и некоторые ошибки при выполнении оператора MERGE (обновление со вставкой), например, ORA-30926: Unable to get a stable set of rows for MERGE operation - невозможно получить устойчивый набор строк для операции MERGE.

Когда возникает ошибка, строка, вызвавшая ее, протоколируется в таблице "некорректных записей" наряду с номером ошибки, текстом сообщения об ошибке, типом операции (INSERT, UPDATE или DELETE), а также с идентификатором этой строки ROWID (для операций UPDATE и DELETE).

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 20.01.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Processor License
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Personal Edition Named User Plus License
Quest Software. TOAD for SQL Server Xpert Edition
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Вопросы и ответы по MS SQL Server
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100