今天公司一个同事在做IMP时总是导不进去,而给他DMP的同事说DMP决对没问题,自己都导成功过无数次了。
我去看一下,一个比较小的DMP,300M+
imp按提示输入后就报一堆的错,太快了,CTRL+C后看到的全是以下的错误,
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
"CREATE TABLE "BPM_WORKLIST" ("ID" NUMBER(38, 0) NOT NULL ENABLE, "NODEWORKI"
"D" NUMBER(38, 0), "EMPLOYEEID" VARCHAR2(20) NOT NULL ENABLE, "BEGINDATE" DA"
"TE NOT NULL ENABLE, "ENDDATE" DATE, "ADVICE" VARCHAR2(1000), "ALERTTERM" NU"
"MBER(38, 0), "EXPENDTIME" NUMBER(38, 0), "STATUS" NUMBER(38, 0) NOT NULL EN"
"ABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 "
"FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "DLYX_DATA" LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
"CREATE TABLE "CS_BMCS" ("BM_BH" CHAR(2) NOT NULL ENABLE, "SC_BM_ZT" NUMBER("
"1, 0) NOT NULL ENABLE, "CB_RQ_ZT" CHAR(1) NOT NULL ENABLE, "TZ_CB_SX" CHAR("
"1), "LM_JS" CHAR(1), "ICK_BZ" CHAR(1), "CB_ZQS" NUMBER(2, 0)) PCTFREE 10 P"
"CTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 81920 FREELISTS 1 FREELIS"
"T GROUPS 1) TABLESPACE "DLYX_DATA" LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
....
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
"CREATE TABLE "BPM_WORKLIST" ("ID" NUMBER(38, 0) NOT NULL ENABLE, "NODEWORKI"
"D" NUMBER(38, 0), "EMPLOYEEID" VARCHAR2(20) NOT NULL ENABLE, "BEGINDATE" DA"
"TE NOT NULL ENABLE, "ENDDATE" DATE, "ADVICE" VARCHAR2(1000), "ALERTTERM" NU"
"MBER(38, 0), "EXPENDTIME" NUMBER(38, 0), "STATUS" NUMBER(38, 0) NOT NULL EN"
"ABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 "
"FREELISTS 1 FREELIST GROUPS 1) TABLESPACE "DLYX_DATA" LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
IMP-00017: 由于 ORACLE 的 922 错误,以下的语句失败
"CREATE TABLE "CS_BMCS" ("BM_BH" CHAR(2) NOT NULL ENABLE, "SC_BM_ZT" NUMBER("
"1, 0) NOT NULL ENABLE, "CB_RQ_ZT" CHAR(1) NOT NULL ENABLE, "TZ_CB_SX" CHAR("
"1), "LM_JS" CHAR(1), "ICK_BZ" CHAR(1), "CB_ZQS" NUMBER(2, 0)) PCTFREE 10 P"
"CTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 81920 FREELISTS 1 FREELIS"
"T GROUPS 1) TABLESPACE "DLYX_DATA" LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 922
ORA-00922: 缺少或无效选项
....
也没多想,确认不是DMP的问题(别的机器已经测试过了)
应该是数据库相关的问题,问了同事的数据库软件版本,同事说9i
看了一下开始菜单有 Oracle - OraHome92 。
DMP也是9.2导出的。
郁闷了一下,同样的版本别的机器可以,怎么会在本机导不进去了
接着同事又说以前别人的DMP在他的机器基本上都导不成功。
开始怀疑是库的问题了。
由于是测试库,所以叫他重新建了一下库,再导一下,结果还是一样。
真怪了,最后把他IMP的log文件传过来打开一看,如下:
连接到: Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production
经由常规路径导出由EXPORT:V09.02.00创建的文件
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将DLYX的对象导入到 DLYX
IMP-00017: 由于 ORACLE 的 6550 错误,以下的语句失败
"BEGIN "
"sys.dbms_logrep_imp.instantiate_schema(schema_name=>'DLYX', export_db_name="
">'YDGL', inst_scn=>'14606142');"
"COMMIT; END;"
IMP-00003: 遇到 ORACLE 错误 6550
ORA-06550: 第 2 行, 第 1 列:
PLS-00201: 必须说明标识符 'SYS.DBMS_LOGREP_IMP'
ORA-06550: 第 2 行, 第 1 列:
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入
. 正在将DLYX的对象导入到 DLYX
IMP-00017: 由于 ORACLE 的 6550 错误,以下的语句失败
"BEGIN "
"sys.dbms_logrep_imp.instantiate_schema(schema_name=>'DLYX', export_db_name="
">'YDGL', inst_scn=>'14606142');"
"COMMIT; END;"
IMP-00003: 遇到 ORACLE 错误 6550
ORA-06550: 第 2 行, 第 1 列:
PLS-00201: 必须说明标识符 'SYS.DBMS_LOGREP_IMP'
ORA-06550: 第 2 行, 第 1 列:
........
这时才发现问题,原来是9i版本不匹配
DMP是9.2.0.1导出的,他的机器ORACLE软件是9.0.1.1
由于公司的9i都是9.2.0.1了,又被他的开始菜单里的ORACLE菜单(Oracle - OraHome92)迷惑了,所以没有怀疑版本问题。
看来下次诊断问题需要细心一些了,不要被表面的现象迷惑。