导入导出的dmp文件时出现如下错误
经由常规路径导出由EXPORT:V09.02.00创建的文件
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
"CREATE TABLE "SW_DQBM" ("DQID" VARCHAR2(6) NOT NULL ENABLE, "DQMC" VARCHAR2"
"(24) NOT NULL ENABLE, "LYID" VARCHAR2(1), "KJID" VARCHAR2(6), "RK" VARCHAR2"
"(16), "TD" VARCHAR2(16), "GD" VARCHAR2(16), "ZWCL" VARCHAR2(16), "ZWMJ" VAR"
"CHAR2(16), "XMY" VARCHAR2(16), "GMJJ" VARCHAR2(16)) PCTFREE 10 PCTUSED 40 "
"INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1"
") TABLESPACE "TAHE03" LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
再次用indexfile参数导入文件得到对象创建语句,贴到sqlplus中执行发现是nocompress这
个参数的问题,根源是版本问题,导出数据服务器和客户端的版本都是92,导入数据服务器
和客户端的版本都是90,不过已经不可能再用90的客户端去导数据了。所以只能用这个dmp
文件。
开始想到的是修改indexfile选项导出的sql文件,创建表结构,可以完成。
但是再次导入dmp文件发现还是无法继续进行。
这样只能更改dmp文件了,用ultraedit32打开dmp文件,定位nocompress字符,把这些字符
全部改成空格,空格的ascii码是32,16进制就是20,也就是把nocompress所包含的字符全
部改成20即可。
重新导入dmp文件,成功。
不过编辑dmp文件始终是件危险的事情,不知道有没有方法可以在创建表结构以后跳过这些
表结构定义语句,而直接导入数据的方法?