Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL-列显示可为空的“是”,尽管有检查约束_Oracle_Activerecord_Oracle11g - Fatal编程技术网

Oracle SQL-列显示可为空的“是”,尽管有检查约束

Oracle SQL-列显示可为空的“是”,尽管有检查约束,oracle,activerecord,oracle11g,Oracle,Activerecord,Oracle11g,我正在将模式中的所有表迁移为分区表。因为我使用的是11g而不是12.2,所以我必须使用DBMS\u重新定义。我已经用一些Ruby代码实现了自动化,这些代码为模式中的每个表执行重新定义过程 我的问题是,在迁移之后,所有不可为null的列都会显示null-YES。然而,这实际上不是真的,因为我可以检查约束,并且有为每个列定义的检查约束,这些列过去是notnull,仍然强制执行notnull状态。似乎DBMS\u重新定义成功复制了约束,但它没有反映NULLABLE状态 有没有办法让Oracle恢复同步

我正在将模式中的所有表迁移为分区表。因为我使用的是11g而不是12.2,所以我必须使用
DBMS\u重新定义
。我已经用一些Ruby代码实现了自动化,这些代码为模式中的每个表执行重新定义过程

我的问题是,在迁移之后,所有不可为null的列都会显示
null
-YES。然而,这实际上不是真的,因为我可以检查约束,并且有为每个列定义的检查约束,这些列过去是
notnull
,仍然强制执行
notnull
状态。似乎
DBMS\u重新定义
成功复制了约束,但它没有反映
NULLABLE
状态


有没有办法让Oracle恢复同步?我在别处找到了答案:

Oracle复制约束,但从不重新启用“验证”。您必须手动执行以下操作:

altertable启用验证约束