在Oracle闪回表上启用约束

时间:2009-12-15 07:20:58

标签: oracle plsql oracle10g ora-01735

我在Toad中运行了一个禁用所有约束的数据复制功能,然后失败了。

这给我留下了一堆禁用的约束。其中大多数我已经能够成功启用,但闪回的那些正在给我的存储过程适合。

问题:

1)是否有必要重新启用闪回表的约束?我的假设是如果它们没有被启用并且使用闪回,那么当表恢复时它们将被禁用,所以是的,它们应该被重新启用。

2)我得到的错误是ORA-01735:无效的alter table选项。

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;

也失败了。什么是正确的语法?或者我在错误的树上咆哮,实际上是什么错误?

1 个答案:

答案 0 :(得分:2)

怎么样:

EXECUTE IMMEDIATE 
'ALTER TABLE'||' ""'||l_table_name||'"" '||'ENABLE CONSTRAINT'||' 
"'||l_Constraint_name||'"';