【发布时间】:2013-02-21 05:50:16
【问题描述】:
我正在尝试向表中插入一条记录,但出现错误 -
'ORA-01400: cannot insert NULL into (....'。表结构为:
我从 Mysql 迁移到 Oracle。
在 Mysql 上这工作,但在 Oracle 上它不工作。我怎样才能解决这个问题?我是否需要编写所有列插入查询或取消选择非空选项
【问题讨论】:
-
MySQL 允许您将 null 插入非 null 列(并静默地将其转换为其他内容)。 Oracle 实际上遵守您不想在该列中存储 NULL 的约束。解决方案是在插入时提供一个值而不是 NULL。
-
在某些列上存在 NOT NULL 约束,因此您需要在插入期间提供一个值,或者可能缺少触发器(例如,它可以从序列中填充列)
-
好的。如何在 Oracle 所有表上删除“非空”选项?
-
您可以使用 all_tab_cols 中的数据编写脚本,将列更改为可为空,但您确定要这样做吗?为什么不使用
NVL?
标签: mysql oracle migration notnull ora-01400