oracle 数据库乱码问题解决
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
影响Oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language: 指定服务器消息的语言, 影响提示信息是中文还是英文
Territory: 指定服务器的日期和数字格式,
Charset: 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
二
Windows环境
查看数据库字符集
1 查询oracle server端的字符集
select userenv('language') from dual;
2.更改客户端字符集(改为服务器端的)
方法1、 编辑注册表
开始--运行---- Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE---》KEY_OraDb11g_home1---》NLS_LANG==》
SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
方法2. 编辑环境变量(没有安装oracle客户端的情况下)
我的电脑--高级------环境变量----系统变量--新建变量名(NLS_LANG)、变量值(SIMPLIFIED CHINESE_CHINA.AL32UTF8)
本文原创,转载必追究版权。