вторник, 17 ноября 2009 г.

ORA-02298: cannot validate

Для нахождения строк в таблице где строиться Foreign Key constraint, при котором возникает ошибка ORA-02298: cannot validate (SCOTT.EMP_FK_TEST) - parent keys not found необходимо выполнить следующие шаги:

1) Создать таблицу куда будут записываться все строки, для которых возникла ошибка
create table exceptions(row_id rowid,
owner varchar2(30),
table_name varchar2(30),
constraint varchar2(30));

2) Попробовать создать foreign key constraint с ключевыми словами "exceptions into exceptions"
Например,
ALTER TABLE emp ADD (
CONSTRAINT emp_fk_test
FOREIGN KEY (EMP_FK_T1)
REFERENCES dept (ID)
exceptions into exceptions);

3) Посмотреть все записи , для которых возникает ошибка
select * from exceptions;

4) Если удалить эти записи из дочерней таблицы ошибка исчезнет
Например,
delete from EMP where rowid in (select row_id from xxx_exceptions)

Комментариев нет: