Oracle9i用客户端PLSQL导入dmp文件的时候,有一些表的主键导入失败。帮帮忙。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle9i用客户端PLSQL导入dmp文件的时候,有一些表的主键导入失败。帮帮忙。相关的知识,希望对你有一定的参考价值。

那些导不进去数据如:"CREATE UNIQUE INDEX "SYS_C004056_1_2" ON "SUBSIDEWORKKNOWNCARD" ("
IMP-00003: 遇到 ORACLE 错误 921
ORA-00921: 未预期的 SQL 命令结尾
应该是主键的名称不规范导致的错误,之前建表的时候是用Enterprise Manager Console创建的,之后重装过系统。

应该是数据问题,违反唯一索引的约束条件,比如ID不能重复,或者有部分要导入的数据(那个UNIQUE INDEX相关的列)已经存在的
1. 单独建个临时用户
2. 将有类似错误的表先都导入这个用户下(可以加参数 ignore=n)
3. 找报错的行再单独分析处理追问

当初建表的时候,如果表是违反唯一索引的约束条件的话,是建立不起来的。那么怎么会在导到新数据库后就会重复呢。

追答

现在是在导入数据,但是不排除有的数据已经存在,或者已经导入过
这种情况再导入的时候,重复的数据就会因为违反唯一约束而失败

追问

在这之前数据库是一条数据都没有的。

参考技术A 能把创建主键的这段代码全部发出来吗追问

这些信息是导表时的日志其中一个表的信息,就这么多。

使用PLSQL向oracle中导入dmp文件

我在oracle中建立了一个表空间简称date,又建了一个临时表空间temp,然后我建了一个用户user并赋予DBA权限,user默认表空间是date,临时表空间是temp,然后我登陆PLSQL使用normal或者DBA权限导入桌面的一个dmp文件,每次都是cmd窗口一闪而过,tables文件夹下没有任何表,求解,急!
这是我用命令行导入时出现的错误,到底是怎么回事呢?

原因是你的oracle版本与给你导入文件的人使用的oracle版本不同,给你导入文件的人的oracle版本应该高于你使用的oracle版本。
一般的规则是:低版本导出的文件,高版本可以导入;高版本导出的文件,低版本是无法导入的。
参考技术A 你用命令行导入,就可以看到错误了。

运行:cmd
imp user/pwd@数据库的本地Net服务名

然后按照提示导入。
参考技术B = =

以上是关于Oracle9i用客户端PLSQL导入dmp文件的时候,有一些表的主键导入失败。帮帮忙。的主要内容,如果未能解决你的问题,请参考以下文章

plsql导入dmp的问题

用plsql导入dmp文件的时候,点击导入,闪了一下,下面提示Done,就没反应了,这是为啥呢?QQ:412972507

plsql导入dmp文件存储过程需要删吗

Oracle 10G中导入dmp文件

plsql导入dmp表,一闪而过,显示done,但是却啥也没有导进去

plsql导入dmp文件怎么导入按钮是灰色的