首页 > 代码库 > 9i 迁移11g IMP-00003:   ORA-00922:   IMP-00008:

9i 迁移11g IMP-00003:   ORA-00922:   IMP-00008:

windows  9i 迁移  AIX  11g


源数据库版本: windows 9i    9.2.0.8
新数据库版本: AIX     11g   11.2.0.4 



数据库字符集

源数据库版本: windows 9i    zhs16gbk        
新数据库版本: AIX     11g   zhs16gbk        


secureCRT 字符集  中文GB2312



$imp neto2_jn/neto fromuser=neto2 touser=neto2  file=jn.dmp log=jn.log 

Export file created by EXPORT:V10.02.01 via conventional path
import done in UTF8 character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
IMP-00017: following statement failed with ORACLE error 922:
 "CREATE TABLE "CLPF_申请单" ("ID" VARCHAR2(36), "IID" NUMBER,  
 "单位" VARCHAR2(255), "带人" VARCHAR2(255), "出任务" VARCHAR2(2"
 "55), " 开始时间" VARCHAR2(255), "申请型" VARCHAR2(255),  
 "注" VARCHAR2(2000), "INPUT_INDEX" NUMBER, "驾驶员电话" VARCHAR2(255),"
 " "人数" VARCHAR2(50), "数" VARCHAR2(50))  PCTFREE 10 PCTUSED 40 INITR"
 "ANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFF"
 "ER_POOL DEFAULT) TABLESPACE "NETO2_JN" LOGGING NOCOMPRESS"
 "ALTER TABLE "CLPF_申请单" MODIFY DEFAULT"


进行导入时,出现如下报错:

IMP-00003: ORACLE error 922 encountered
ORA-00922: missing or invalid option
IMP-00008: unrecognized statement in the export file: 


分析定位问题:

关于oracle字符集这里不再详述,由于exp/imp是客户端工具,在进行imp导入时涉及三方面的字符集

1. oracel server端的字符集;

2. oracle client端的字符集;

3. dmp文件的字符集。

在做数据导入的时候,需要这三个字符集都一致才不会发生异常错误,导入带有中文名称表的时候,NLS_LANG要设置一致




查询源数据库server端的字符集

SQL> select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA.ZHS16GBK


查询数据库server端的字符集 

SQL>select userenv(‘language’) from dual;

AMERICAN_AMERICA.ZHS16GBK


源库和新库的NLS_LANG不一致,导致IMP带有中文名称的表时报错


这里临时更改NLS_LANG使得源库与新库NLS_LANG暂时一致,然后重新进行IMP导入

$export NLS_LANG=‘SIMPLIFIED CHINESE_CHINA.ZHS16GBK‘
$imp neto2_jn/neto fromuser=neto2 touser=neto2  file=jn.dmp log=jn.log 

Import: Release 11.2.0.4.0 - Production on 星期五 2月 14 10:11:35 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Tes

经由常规路径由 EXPORT:V09.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 NETO2_JN 的对象导入到 NETO2_JN
. . 正在导入表               "CLZF_申请单"     导入了          12 行
. . 正在导入表                        "DB"     导入了           0 行
. . 正在导入表                "DT_工作日日志"  导入了          76 行
. . 正在导入表                "DT_YWMAsdtchS"  导入了         352 行
. . 正在导入表           "DT_YWKOIURAILS_2012" 导入了         352 行




小结:

在使用exp、imp这种客户端工具时,要检查、正确配置源库、新库的字符集,环境变量,终端字符集


本文出自 “O Record” 博客,请务必保留此出处http://evils798.blog.51cto.com/8983296/1420918