orale数据到数据是主键约束的问题

  今天把数据库装了  然后王书就可以导数据    在运行项目的时候   后台来时报主键约束的问题 

   排查下来    在到入数据的时候出了问题

  问题

   


   出现了imp-00010 imp-00000 错误

   这个出错时因为你到出的数据的原始数据的版本与被导入的数据库版本不一样


 决解办法

  oracle 导入dmp 报 IMP-00010:不是有效的导出文件,头部验证失败

这是由于导出的dmp文件与导入的数据库的版本不同造成的

用Notepad++查看了dmp文件,在头部具修改成你将导入目标数据库的版本号

以下对应的版本号:

  11g R2:V11.02.00

  11g R1:V11.01.00

  10g:V10.02.01



这样还是会出现一个问题  那就是有些主键不能生成    导入数据是就会出现警告 

  在使用的时候就会出现问题

 

 决解办法

    
  就是在导入的数据时候 要把主外键也一并倒入

  mp aostareip/aostareip@eipdb file=d:\temp.db full=y ignore=y
这个语句可以从temp.db文件把数据导入到eipdb数据库上,temp.db文件中只有T_SERIALNUM表的内容:
SERIALNUM(PK) NAME



--------------------------------------------------------------------------------
26              version
27              fieldID
28              modelSys

但是我的目的数据库中表T_SERIALNUM的记录为:
SERIALNUM(PK) NAME
--------------------------------------------------------------------------------
26              version
27              fieldID
28              SysID

可以看到最后一条记录的Name字段内容不一样,现在我希望用temp.db文件中的最后一条记录覆盖目的数据库该表的最后一条记录,因为该记录关键字内容都为28,所以上面的imp语句因为违反了唯一约束条件而不成功,我试了 newusers(newusers) 兄建议的加参数CONSTRAINTS=Y,写成如下模样:
imp aostareip/aostareip@eipdb file=d:\temp.db full=y ignore=y constraints=y



 


 


你可能感兴趣的:(oracle)