【问题标题】:Enable constraint on Oracle flashback table对 Oracle 闪回表启用约束
【发布时间】:2010-12-26 17:12:34
【问题描述】:

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

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

问题:

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

2) 我得到的错误是 ORA-01735: Invalid alter table option。

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;

也失败了。什么是正确的语法?或者我是否在错误地找出错误的实际情况?

【问题讨论】:

  • 语法似乎是正确的。你是如何执行的?

标签: oracle plsql oracle10g ora-01735


【解决方案1】:

怎么样:

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

【讨论】:

  • 正确答案原来是:EXECUTE IMMEDIATE 'ALTER TABLE'||' "'||l_table_name||'" '||'启用约束'||' "'||l_Constraint_name||'"';
  • 哈 - 我没有注意到你在表名周围有双双引号......对不起:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多