数据库版本:Oracle - OraHome92
一个全新的数据库,从别的数据库中把全部信息导入这个新的数据库。在pl/SQL里面导入表,出现如下信息(“……”表示正常导入,我已经使用 full=y 和 ignore=y):经由常规路径导出由EXPORT:V09.02.00创建的文件警告: 此对象由 ZFXFZB 导出, 而不是当前用户已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将ZFXFZB的对象导入到 SYSTEM
. . 正在导入表                             "A"          0行被导入
. . 正在导入表                           "AAA"          0行被导入………………IMP-00017: 由于 ORACLE 的 1917 错误,以下的语句失败
 "GRANT SELECT ON "BJDMB" TO "ZFJWGLJKFS""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'ZFJWGLJKFS' 不存在
. . 正在导入表                        "BJDMB1"          0行被导入
. . 正在导入表                        "BJDMBB"          0行被导入…………IMP-00017: 由于 ORACLE 的 959 错误,以下的语句失败
 "CREATE TABLE "BYLWGSB" ("XH" NUMBER(4, 0), "BT" VARCHAR2(255), "NR" VARCHAR"
 "2(2000), "SM" VARCHAR2(2000), "BZ" VARCHAR2(255), "NR1" CLOB)  PCTFREE 10 P"
 "CTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 16384 FREELISTS 1 FREELIS"
 "T GROUPS 1) TABLESPACE "ZF" LOGGING NOCOMPRESS LOB ("NR1") STORE AS  (TABLE"
 "SPACE "ZF" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE  STORAGE("
 "INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1))"
IMP-00003: 遇到 ORACLE 错误 959
ORA-00959: 表空间'ZF'不存在
. . 正在导入表                   "BYLWJXFSDMB"          0行被导入
. . 正在导入表                   "BYLWTMLXDMB"          0行被导入…………IMP-00017: 由于 ORACLE 的 1917 错误,以下的语句失败
 "GRANT SELECT ON "CFBJXRWB" TO "JWGLFZXT""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'JWGLFZXT' 不存在
. . 正在导入表                        "CFBXSB"          0行被导入…………IMP-00017: 由于 ORACLE 的 1917 错误,以下的语句失败
 "GRANT SELECT ON "CJB" TO "ZFJWGLJKFS""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'ZFJWGLJKFS' 不存在
IMP-00017: 由于 ORACLE 的 1917 错误,以下的语句失败
 "GRANT SELECT ON "CJB" TO "JWGLFZXT""
IMP-00003: 遇到 ORACLE 错误 1917
ORA-01917: 用户或角色 'JWGLFZXT' 不存在…………
之后就疯狂出现:IMP-00019: 由于 ORACLE 的 1 错误而拒绝行
IMP-00003: 遇到 ORACLE 错误 1
ORA-00001: 违反唯一约束条件 (SYSTEM.SYS_C003107)
…………IMP-00019: 由于 ORACLE 的 1 错误而拒绝行
IMP-00003: 遇到 ORACLE 错误 1
ORA-00001: 违反唯一约束条件 (SYSTEM.SYS_C003157)请问这些要怎么解决?dmp文件很大,有11g,我不可能一个个修改。请问怎么办?谢谢!!

解决方案 »

  1.   

    第一步:运行->CMD
    第二步:导出原库用户 userdba1 的数据EXP userdba1/123456 FILE=d:\userdba1.DMP  OWNER=userdba1
    第三步:可通过 OEM 建立新的表空间及新用户,然后使用下面的命令IMP user2/123456 FILE=d:\userdba1.DMP  FROMUSER=userdba1 TOUSER=user2
      

  2.   

    因为你导出的dmp文件包含TABLESPACE "ZF" 的信息,所以导入的时间会默认找这个表空间,两个解决方案:
    1、重新导出的dmp文件,导出的时间去掉表空间的信息;
    2、在备份的数据库中也建立zf表空间;
    另外的GRANT授权失败不会有太大的影响,只是你的库中没有该用户而已。