如何在RAC环境下修改Oracle字符集

php中文网
发布: 2016-06-07 16:53:41
原创
1117人浏览过

非RAC环境字符集修改 1.1 Oracle字符集问题总结 1.1.1 oracle字符集概念 oracle字符集是一个字节数据的解释的符号集

  非RAC环境字符集修改

  1.1 Oracle字符集问题总结

  1.1.1 oracle字符集概念

  oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。

  影响oracle数据库字符集最重要的参数是NLS_LANG参数。格式:NLS_LANG = language_territory.charset

  其中:Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK。从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

  1.1.2 查询Oracle的字符集

  在做数据导入的时候,需要这三个字符集都一致:一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。

  A. 查询oracle server端的字符集

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

  结果类似:AMERICAN_AMERICA.ZHS16GBK

  或者select * from V$_NLS_PARAMETERS

  B. 如何查询dmp文件的字符集

  dmp文件的第2和第3个字节记录了dmp文件的字符集。小dmp文件用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

  SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;

  结果ZHS16GBK

  dmp文件很大如2G以上,用文本编辑器打开很慢或者完全打不开,可以用命令(在unix主机上):

  cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

  然后用上述SQL也可以得到它对应的字符集。

  C. 查询oracle client端的字符集

  windows注册表里面相应OracleHome的NLS_LANG(如果装配置台等将总共有3个:ORACLE下一个、ID0下有一个、HOME0下一个)。还可以在dos窗口里面自己设置,如:set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK这样就只影响这个窗口里面的环境变量;

  在unix平台下,就是环境变量NLS_LANG。$echo $NLS_LANG 如AMERICAN_AMERICA.ZHS16GBK

  如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集(建议导入时直接在服务器上导入)

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号