Включить ограничение для таблицы Flashback Oracle
Вопрос
Я запустил функцию копирования данных в Toad, которая отключила все ограничения, а затем потерпела неудачу.
Это оставило меня с кучей отключенных ограничений.Большинство из них мне удалось успешно включить, но флэшбэки дают сбои моему сохраненному процессу.
Вопросы:
1) Нужно ли повторно включать ограничения на таблицы флешбэков?Я предполагаю, что если они не включены и используется флэшбек, они будут отключены при восстановлении таблицы, поэтому да, их следует снова включить.
2) Я получаю ошибку ORA-01735:Недопустимая опция изменения таблицы.
EXECUTE IMMEDIATE
'ALTER TABLE'||' '||l_table_name||' '||'ENABLE CONSTRAINT'||'
'||l_Constraint_name;
Мое предположение состоит в том, что ==$0
имя таблицы вызывает проблемы, и мне нужно заключить его в двойные кавычки.Однако мои попытки сделать это:
EXECUTE IMMEDIATE
'ALTER TABLE'||' ""'||l_table_name||'"" '||'ENABLE CONSTRAINT'||'
'||l_Constraint_name;
также не удалось.Каков правильный синтаксис?Или я лаю не по тому дереву, в чем на самом деле заключается ошибка?
Решение
Как насчет:
EXECUTE IMMEDIATE
'ALTER TABLE'||' ""'||l_table_name||'"" '||'ENABLE CONSTRAINT'||'
"'||l_Constraint_name||'"';