我要实现的功能是 把服务器上的数据库备份成.dmp文件,然后在导入到另外一台电脑上。导出时候没有问题(imp dbims/dbims@dbi0903 file=f:data1.dmp full=y ignore=y),导入的时候报错了.具体步骤如下:
1.在要导入数据的电脑上,创建用户dbims密码dbims(表空间命名要一致吗?如之前表空间命名为table1,现在dbims的表空间还要相同吗?)
2.然后给dbims授权( grant dba to dbims);
3.(imp dbims/dbims@orcl file=f:data1.dmp full=y ignore=y),出现如下错误
IMP-00019: 由于 ORACLE 错误 1 而拒绝行
IMP-00003: 遇到 ORACLE 错误 1
ORA-00001: 违反唯一约束条件 (SYSTEM.REPCAT$_OBJECT_TYPE_PK)
IMP-00017: 由于 ORACLE 错误 2264, 以下语句失败:
"ALTER TABLE "REPCAT$_PRIORITY_GROUP" ADD CONSTRAINT "REPCAT$_PRIORITY_GROUP"
"_C1" CHECK (data_type_id in (1, 2, 3, 4, 5, 6, 7)) ENABLE NOVALIDATE"
IMP-00003: 遇到 ORACLE 错误 2264
ORA-02264: 名称已被一现有约束条件占用;
是不是还缺少导出的什么步骤,对了,本机的orcle是10.2版本,服务器上oracle应该是低于10.2的,这个有没有影响?初学数据库,请大家多多指教。
------最佳解决方案--------------------
加上ignore=Y
试试
------其他解决方案--------------------
该回复于2012-11-09 11:48:46被管理员删除
------其他解决方案--------------------
是不是曾经导入,半路停止了,然后又重新导入了。
------其他解决方案--------------------
请教同事后弄明白了,首先要知道之前导出数据库的用户名,比如用户名为test,则
imp dbims/dbims@dbi0903 fromuser=test touser=dbims file=f:data1.dmp ignore=y 就可以了。