C:\>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBKC:\>exp scott/tiger file='d:\c.dmp'Export: Release 9.2.0.1.0 - Production on 星期二 12月 7 11:00:47 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining option
s
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 A 14 行被导出
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
. . 正在导出表 EMP 14 行被导出
. . 正在导出表 LOAD 0 行被导出
. . 正在导出表 MLOG$_TEST 19820 行被导出
. . 正在导出表 RUPD$_TEST
. . 正在导出表 SALGRADE 5 行被导出
. . 正在导出表 TEST 0 行被导出
. . 正在导出表 V_TEST 14 行被导出
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
在没有警告的情况下成功终止导出。C:\>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16cGB231280C:\>exp scott/tiger file='d:\c3.dmp'Export: Release 9.2.0.1.0 - Production on 星期二 12月 7 11:01:10 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining option
s
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16CGB231280 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 ZHS16GBK 字符集 (可能的字符集转换)
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 A 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
EXP-00091: 正在导出可疑的统计信息。
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 EMP 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 LOAD 0 行被导出
. . 正在导出表 MLOG$_TEST 19820 行被导出
. . 正在导出表 RUPD$_TEST
. . 正在导出表 SALGRADE 5 行被导出
. . 正在导出表 TEST 0 行被导出
. . 正在导出表 V_TEST 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
导出成功终止,但出现警告。C:\>
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining option
s
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 A 14 行被导出
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
. . 正在导出表 EMP 14 行被导出
. . 正在导出表 LOAD 0 行被导出
. . 正在导出表 MLOG$_TEST 19820 行被导出
. . 正在导出表 RUPD$_TEST
. . 正在导出表 SALGRADE 5 行被导出
. . 正在导出表 TEST 0 行被导出
. . 正在导出表 V_TEST 14 行被导出
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
在没有警告的情况下成功终止导出。C:\>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16cGB231280C:\>exp scott/tiger file='d:\c3.dmp'Export: Release 9.2.0.1.0 - Production on 星期二 12月 7 11:01:10 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining option
s
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16CGB231280 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 ZHS16GBK 字符集 (可能的字符集转换)
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 A 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
EXP-00091: 正在导出可疑的统计信息。
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 EMP 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. . 正在导出表 LOAD 0 行被导出
. . 正在导出表 MLOG$_TEST 19820 行被导出
. . 正在导出表 RUPD$_TEST
. . 正在导出表 SALGRADE 5 行被导出
. . 正在导出表 TEST 0 行被导出
. . 正在导出表 V_TEST 14 行被导出
EXP-00091: 正在导出可疑的统计信息。
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
导出成功终止,但出现警告。C:\>
添加一个记录exp过程的日志,记录一下详细信息~
贴上来具体的报错信息吧~
ORACLE字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,字符集在创建数据库的时候设定,并保存在数据库props$表中,对于8i以上产品,已经可以采用“Alter database character set 字符集”来修改数据库的字符集,但也仅仅是从子集到超集,不要通过update props$来修改字符集,如果是不支持的转换,可能会失去所有与字符集有关的数据,就是支持的转换,也可能导致数据库的不正常工作。字符集分为单字节字符集与多字节字符集,US7ASCII就是典型的单字节字符集,在这种字符集中length=lengthb,而ZHS16GBK就是常用的双字节字符集,在这里lengthb=2*length。
在客户端的字符集环境比较简单,主要就是环境变量或注册表项NLS_LANG,注意NLS_LANG的优先级别为:参数文件à注册表à环境变量àalter session。NLS_LANG的组成为“国家语言设置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。客户端的字符集最好与数据库端一样(国家语言设置可以不一样,如zhs16gbk的字符集,客户端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示),如果字符集不一样,而且字符集的转换也不兼容,那么客户端的数据显示与导出/导入的与字符集有关的数据将都是乱码。
使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里需要一个2进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp文件,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:
SQL> select nls_charset_name(1) from dual;
NLS_CHARSET_NAME(1)
-------------------
US7ASCII
可以知道该dmp文件的字符集为US7ASCII,如果需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号:
SQL> select nls_charset_id('zhs16gbk') from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
852
把852换成16进制数,为354,把2、3字节的00 01换成03 54,即完成了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了。(注意,十进制数与十六进制之间的转换,想明白其中的道理)
4.1.4 跨版本使用Exp/Imp
Exp/Imp很多时候,可以跨版本使用,如在版本7与版本8之间导出导入数据,但这样做必须选择正确的版本,规则为:
·总是使用IMP的版本匹配数据库的版本,如果要导入到816,则使用816的导入工具。
·总是使用EXP的版本匹配两个数据库中低的那个版本,如在815与816之间互导,则使用815的EXP工具。
我用这个方法,成功解决从815版本的american_america.us7ascii到ORACLE9i版本的SIMILIFILD CHINESE_CHINA.ZHS16GBK的转换,并且用EXP和IMP都不出问题。你可以参考一下。