ORA-01400: 无法将 NULL 插入 ("repository name"."MD_PROJECTS"."ID")
Posted
技术标签:
【中文标题】ORA-01400: 无法将 NULL 插入 ("repository name"."MD_PROJECTS"."ID")【英文标题】:ORA-01400: Can't insert NULL into ("repository name"."MD_PROJECTS"."ID") 【发布时间】:2015-06-04 19:26:47 【问题描述】:我们正在使用 SQL Developer 4.0.3.16 将 mysql 数据库迁移到 Oracle 12c 数据库。
创建存储库后出现错误(无法创建存储库,因为它仍然存在,请先将其删除。)。没有存储库,所以我们再次尝试,它成功了,存储库已创建。
现在我们已连接到我们的源数据库 (MySQL)、我们的目标数据库 (Oracle)(见图),并且我们与我们的迁移用户 (migrepo) 建立了另一个连接到我们的目标数据库。
现在我们一遍又一遍地遇到以下错误..:
(英文:ORA-01400: Can't insert NULL into ("MIGREPO"."MD_PROJECTS"."ID"))
谁能帮助我们?
【问题讨论】:
您是在移动数据还是架构结构和数据? 架构结构和数据 如果该列是主键,或者即使它只有一个NOT NULL
约束,您也无法将NULL
插入其中。看看表的约束,您可能必须删除一个或多个才能完成您想要完成的任务。
另一种可能性是您尝试插入的不是显式的NULL
值,而是一个空字符串。 Oracle 认为空字符串''
与NULL
相同。另一方面,MySQL 确实支持与NULL
s 不同的空字符串。 ***.com/questions/1267999/…
我没有尝试插入任何内容,只是尝试迁移数据库。如果我放弃对主键“id”的约束,它只会给出更多错误。
【参考方案1】:
您的表 MIGREPO.MD_PROJECTS 上有一个名为 ID 的列,它要么是主键,要么具有 NOT NULL 约束(或两者兼而有之)。正在运行的代码中的某些内容试图将 NULL 放入此 ID 列,这是约束不允许的。
祝你好运。
【讨论】:
谢谢,有人使用表 MD_PROJECTS 吗? (它是迁移存储库中的标准表..) 我在使用 SQL Developer 版本 18.4.0.376 时遇到了同样的错误【参考方案2】:已解决,我试图将其迁移为 sysdba。创建新用户并成功迁移。
【讨论】:
能否详细说明解决方案?【参考方案3】:最好尝试将您的 Oracle 列更改为 NOT NULL
,并在转换时,选择选项为 APPEND
以获取如果表存在的情况。它会解决问题。
【讨论】:
以上是关于ORA-01400: 无法将 NULL 插入 ("repository name"."MD_PROJECTS"."ID")的主要内容,如果未能解决你的问题,请参考以下文章
ORA-01400: 当使用 @onetomany 映射并且在子端具有复合主键时,无法将 NULL 插入
ORA-01400: 无法将 NULL 插入 ("repository name"."MD_PROJECTS"."ID")
Cause: java.sql.SQLException: ORA-01400: 无法将 NULL 插入 ("MESIRJ"."TMMIS11"."P
我用的是oracle数据库,ORA-01400: 无法将 NULL 插入 ("SYSTEM"."PIZZA"."FACET")