Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ORA-02270: no matching unique or primary key for this column-list  [new]
Sherst
Member

Откуда:
Сообщений: 222
Привет всем!

Вообщем возникла следующая задача. Необходимо отключать констрейнты/индексы, инсертить данные, затем включать констрейнты/индексы. На этапе включения констрейнтов я получаю:
ORA-02270
. Я вижу табличку на которой оно вываливается (скажем TABLE1), у этой таблички есть foreign key на другую таблицу (скажем TABLE2), а на другой таблице (TABLE2) этот ключ еще не включен. Т.е. на этапе влючения констрейтов мне еще важна последовательность выбора таблиц,
т.е. снчала включаем констрейнты на TABLE2, затем на TABLE1. Вопрос такой: как правильно формировать такую последовательность, чтобы избежать
ORA-02270
? Я использую такой скрипт:
DECLARE
BEGIN
FOR cur IN
  (SELECT OWNER, CONSTRAINT_NAME , TABLE_NAME
   FROM all_constraints
   WHERE UPPER(OWNER) = UPPER('TEST')
     AND UPPER(TABLE_NAME) = UPPER('TABLE1')) LOOP EXECUTE IMMEDIATE 'ALTER TABLE '||cur.OWNER||'.'||cur.TABLE_NAME||' MODIFY CONSTRAINT "'||cur.CONSTRAINT_NAME||'" ENABLE ';
 
END LOOP;
 
END;


Спасибо!
27 сен 15, 10:16    [18200629]     Ответить | Цитировать Сообщить модератору
 Re: ORA-02270: no matching unique or primary key for this column-list  [new]
Elic
Member

Откуда:
Сообщений: 29976
Sherst
важна последовательность выбора таблиц
Если хотя бы чуть-чуть включить мозг, то станет очевидно, что достаточно правильной последовательности типов ограничений.
27 сен 15, 10:46    [18200649]     Ответить | Цитировать Сообщить модератору
 Re: ORA-02270: no matching unique or primary key for this column-list  [new]
Sherst
Member

Откуда:
Сообщений: 222
Спасибо Elic за пинок в нужное направление.
27 сен 15, 12:12    [18200730]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить