QQRead:http://www.qqread.com/oracle/b492398105.html
Oracle817 版本 不同字符集之间的数据库导入
由于业务原因,需要将一英文字符集(American_America.WE8ISO8859P1)的数据库DMP文件导入到一中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的数据库中。由于字符集的不同,需要将中文字符集的数据库环境改变成英文字符集。遇到很多的麻烦,通过在网上查找资料,终于解决了问题。在这个过程中,发现网友们也有同样的问题,为了,让大家在以后能够顺利的完成此类工作,现将把我导入成功的过程写出来,与大家共享。
一、系统环境:
导出环境:
主机:Compaq 小型机
操作系统:Unix
数据库:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)}
导入环境:
主机:普通Pc 机
主频:PIII750
内存:192M
操作系统:Windows 2000 server
数据库:Oracle8.1.7中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
注:导出过程省略
二、导入过程
1、 将win2000系统中的oracle注册表
[HKEY_LOCAL_MACHINE OFTWARE\ORACLE]中的[NLS_LANG]键值
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”改成
“American_America.WE8ISO8859P1”
2、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_CHARACTERSET';
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_NCHAR_CHARACTERSET';
commit;
3、 重新启动oracle
4、 开始导入数据库
userid = 用户名/密码@连结串
buffer = 60000
log = c:\dmp.log
file = c:\导入数据文件名称.dmp
fromuser = 用户名
touser = 用户名
这里要注意,要确保导入的表空间和用户已经建立并与导出文件一至,还要确认用户是否拥有dba的权限,否则有可能会影响导入数据的完整。
5、 检查导入效果,在目前环境下,测试数据是否正确,是否有乱码,是否有未成功导入的表和其他触发器、过程和函数等信息。确认导入没有问题后,进入到下一步。
6、 将win2000下oracle字符集环境恢复成中文字符集。
[HKEY_LOCAL_MACHINE OFTWARE\ORACLE]中的[NLS_LANG]键值
“American_America.WE8ISO8859P1” 改回
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
7、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_CHARACTERSET';
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_NCHAR_CHARACTERSET';
commit;
8、 重新启动数据库。
检查你的数据库中的数据,如果没有乱码,而且你的程序能够在这个环境下正常运行,那么恭喜你,你也成功了!!
以上是我导入的整个过程,如有纰漏之处,还希望大家指点,您可以通过Email:hawk_flying@sina.com和我取得联系。
更多内容请看数据库专栏、数据库处理专题、城域网专题专题,或进入讨论组讨论。
Oracle817 版本 不同字符集之间的数据库导入
由于业务原因,需要将一英文字符集(American_America.WE8ISO8859P1)的数据库DMP文件导入到一中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的数据库中。由于字符集的不同,需要将中文字符集的数据库环境改变成英文字符集。遇到很多的麻烦,通过在网上查找资料,终于解决了问题。在这个过程中,发现网友们也有同样的问题,为了,让大家在以后能够顺利的完成此类工作,现将把我导入成功的过程写出来,与大家共享。
一、系统环境:
导出环境:
主机:Compaq 小型机
操作系统:Unix
数据库:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)}
导入环境:
主机:普通Pc 机
主频:PIII750
内存:192M
操作系统:Windows 2000 server
数据库:Oracle8.1.7中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
注:导出过程省略
二、导入过程
1、 将win2000系统中的oracle注册表
[HKEY_LOCAL_MACHINE OFTWARE\ORACLE]中的[NLS_LANG]键值
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”改成
“American_America.WE8ISO8859P1”
2、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_CHARACTERSET';
update sys.props$ set value$='WE8ISO8859P1' where name='NLS_NCHAR_CHARACTERSET';
commit;
3、 重新启动oracle
4、 开始导入数据库
userid = 用户名/密码@连结串
buffer = 60000
log = c:\dmp.log
file = c:\导入数据文件名称.dmp
fromuser = 用户名
touser = 用户名
这里要注意,要确保导入的表空间和用户已经建立并与导出文件一至,还要确认用户是否拥有dba的权限,否则有可能会影响导入数据的完整。
5、 检查导入效果,在目前环境下,测试数据是否正确,是否有乱码,是否有未成功导入的表和其他触发器、过程和函数等信息。确认导入没有问题后,进入到下一步。
6、 将win2000下oracle字符集环境恢复成中文字符集。
[HKEY_LOCAL_MACHINE OFTWARE\ORACLE]中的[NLS_LANG]键值
“American_America.WE8ISO8859P1” 改回
“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
7、 用system用户的身份,在Sql-plus 下执行以下语句:
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_CHARACTERSET';
update sys.props$ set value$=' ZHS16GBK ' where name='NLS_NCHAR_CHARACTERSET';
commit;
8、 重新启动数据库。
检查你的数据库中的数据,如果没有乱码,而且你的程序能够在这个环境下正常运行,那么恭喜你,你也成功了!!
以上是我导入的整个过程,如有纰漏之处,还希望大家指点,您可以通过Email:hawk_flying@sina.com和我取得联系。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 数据库专栏 (5150篇文章)
- 数据库处理专题 (8607篇文章)
- 城域网专题 (7812篇文章)
- 数据库安全技术专题 (13086篇文章)
- 数据库安装与卸载 (10507篇文章)
- Oracle 10g基础应用 (4447篇文章)
- Linux数据库宝典 (13020篇文章)
- 数据库相关文章 (5150篇文章)
- 数据库体系架构 (1084篇文章)
- 一个快速删除Oracle的好方法 (21次浏览)
- Oracle数据库中7个疑难问题的解决方法 (15次浏览)
- 教你正确的理解什么是数据库恢复 (14次浏览)
- 使用Oracle sql loader批量导入数据 (13次浏览)
- 有关Oracle存储过程的相关问题 (13次浏览)
- Oracle中的快速插入和快速删除 (12次浏览)
- Oracle中七个疑难问题的解决方法 (10次浏览)
- Oracle数据库频繁归档问题的解决办法 (10次浏览)
- Oracle数据库中汉字长度的问题 (9次浏览)
- 用Rman的Plus archvielog简化数据库备份 (8次浏览)



