我正在将我的架构中的所有表迁移为分区表。因为我是11g而不是12.2我必须使用DBMS_REDEFINITION
。我已经使用一些Ruby代码对其进行了自动化,这些代码为我的架构中的每个表执行重新定义过程。
我的问题是迁移后,我的所有不可为空的列都显示NULLABLE
- 是。但事实并非如此,因为我可以检查约束,并且为以前为NOT NULL
的每个列定义了检查约束,仍然强制执行NOT NULL
状态。似乎DBMS_REDEFINITION
成功复制了约束,但它没有反映NULLABLE
状态。
有没有办法告诉Oracle让它恢复同步?
答案 0 :(得分:0)
我在其他地方找到了答案:
Oracle复制约束但永远不会重新启用验证。您必须手动执行以下操作:
ALTER TABLE <table_name> ENABLE VALIDATE CONSTRAINT <constraint_name>;