Мне нужно изменить таблицу, чтобы удалить ограничение первичного ключа, единственная проблема заключается в том, что таблица генерируется другой системой, и у меня нет имени ограничения. Итак, как обходной путь, я создал следующий скрипт, который, как я думал, должен работать, но это не так, так что кто-нибудь может помочь мне написать другой скрипт, который будет работать.изменить сценарий таблицы в оракуле на основе условия выбора
ALTER TABLE temp
MODIFY CONSTRAINT (select constraint_name
FROM all_constraints
WHERE owner like '%tempUser%' and
table_name like '%temp%' and
constraint_type = 'P'
)
DISABLE;
У меня возникает следующая ошибка при попытке запустить.
Ошибка SQL: ORA-14006: неправильное имя раздела 14006. 00000 - «недопустимое имя раздела» * Причина: имя раздела в форме ожидается, но нет. * Действие: введите соответствующее имя раздела.
Я пробовал выполнить код, основанный на предлагаемой ссылке, и он запускается без каких-либо ошибок, но не устраняет ограничение.
BEGIN
FOR c IN
(SELECT c.owner, c.table_name, c.constraint_name
FROM all_constraints c
where owner like '%tempUser%' and table_name like '%temp%' and constraint_type = 'P')
LOOP
dbms_utility.exec_ddl_statement('alter table ' || c.table_name || ' modify CONSTRAINT ' || c.constraint_name || ' disable ');
END LOOP;
END;
/
Что не работает из этого сценария? Это ошибка? Это поможет найти ответ. – Steven
Возможный дубликат [Отключить все ограничения таблиц в Oracle] (http://stackoverflow.com/questions/128623/disable-all-table-constraints-in-oracle) – mustaccio