ORA-01400:无法将NULL插入到("repository name"."MD_PROJECTS"."ID")中

13 浏览
0 Comments

ORA-01400:无法将NULL插入到("repository name"."MD_PROJECTS"."ID")中

我们正在使用SQL Developer 4.0.3.16将一个MySQL数据库迁移到Oracle 12c数据库。

在创建存储库后,我们遇到了一个错误(无法创建存储库,因为它仍然存在,请先删除它)。但实际上并没有存储库,所以我们再试了一次,这次成功了,存储库被创建了。

现在我们已经连接到了源数据库(MySQL),目标数据库(Oracle)(见图片),并且我们还通过我们的迁移用户(migrepo)连接到了目标数据库。

enter image description here

现在我们一遍又一遍地遇到以下错误..:

enter image description here

(英文:ORA-01400:无法将NULL插入到("MIGREPO"."MD_PROJECTS"."ID"))

有人可以帮助我们吗?

0
0 Comments

ORA-01400: Can't insert NULL into ("repository name"."MD_PROJECTS"."ID")是一个常见的Oracle数据库错误。它表示在执行插入操作时,尝试将NULL值插入到名为"ID"的"MD_PROJECTS"表中,但该列被定义为不允许为空。

解决这个问题的方法是将Oracle列更改为NOT NULL。在进行转换时,可以选择将选项设置为APPEND,以防表已存在。这将解决这个问题。

以下是解决方法的示例代码:

-- 将列更改为 NOT NULL
ALTER TABLE "repository name"."MD_PROJECTS" MODIFY ("ID" NOT NULL);
-- 使用APPEND选项插入数据
INSERT /*+ APPEND */ INTO "repository name"."MD_PROJECTS" ("ID", other columns)
VALUES (value for ID, other values);

通过将列更改为NOT NULL,我们确保在插入数据时不会出现NULL值。使用APPEND选项可以提高插入操作的性能,并避免可能的表锁定问题。

请注意,上述代码中的"repository name"和"other columns"应替换为实际的表和列名称。此外,"value for ID"和"other values"应替换为相应的实际值。

通过按照上述解决方法,您将能够解决ORA-01400错误,并成功将数据插入到"MD_PROJECTS"表中。

0
0 Comments

问题的原因是尝试将数据迁移到sysdba时发生了错误。解决方法是创建一个新用户并进行迁移。

在进行数据库迁移的过程中,出现了“ORA-01400: Can't insert NULL into ("repository name"."MD_PROJECTS"."ID")”的错误。

为了解决这个问题,首先需要明确错误的原因。根据以上提供的信息,可以得出错误是由于尝试将数据迁移到sysdba用户时发生的。

为了解决这个问题,需要创建一个新的用户,并将数据迁移到该用户。通过创建新用户并使用该用户进行迁移,可以避免出现上述错误。

下面是解决该问题的具体步骤:

1. 使用数据库管理工具(如SQL Developer)连接到数据库。

2. 使用sysdba用户登录到数据库。在登录时,确保选择“以sysdba身份登录”选项。

3. 在数据库管理工具中,创建一个新的用户。可以使用以下命令创建新用户:

CREATE USER new_user IDENTIFIED BY password;

其中,new_user是新用户的用户名,password是该用户的密码。

4. 授予新用户适当的权限,以便能够执行迁移操作。可以使用以下命令授予权限:

GRANT ALL PRIVILEGES TO new_user;

5. 使用新用户登录到数据库。在登录时,确保选择新用户作为登录用户。

6. 迁移数据到新用户。在数据库管理工具中,执行相应的迁移操作,以将数据从sysdba用户迁移到新用户。

7. 迁移完成后,验证数据是否成功迁移。可以通过查询相应的表或执行其他操作来验证数据是否正确地迁移。

通过按照以上步骤创建新用户并进行数据迁移,可以解决“ORA-01400: Can't insert NULL into ("repository name"."MD_PROJECTS"."ID")”的错误。这样,可以成功将数据迁移到新用户并避免出现错误。

0
0 Comments

原因:在表MIGREPO.MD_PROJECTS中,有一个名为ID的列,该列要么是主键,要么有一个NOT NULL约束(或者两者都有)。代码中的某些部分试图将NULL插入到这个ID列中,而约束不允许这样做。

解决方法:确保在插入数据时,不要将NULL值插入到ID列中。可以通过以下方式解决该问题:

- 检查代码中插入数据的部分,确保没有将NULL赋值给ID列。

- 如果ID列是主键或有NOT NULL约束,可以尝试提供一个非NULL的值,或者使用自动生成的值(如序列或触发器)来填充ID列。

- 如果ID列不是主键且没有NOT NULL约束,可以修改表结构,将ID列的约束改为允许NULL值。

祝好运。

谢谢,有人知道表MD_PROJECTS是用来做什么的吗?(它是迁移仓库中的标准表。)

我在使用SQL Developer版本18.4.0.376时遇到了相同的错误。

0