程序员经常要连接数据库
下面 就说一下 oracle数据库 客户端与服务器端 字符集一致性的问题
这可以解决中文乱码,其他字符乱码问题
主要是指在sqlplus中,其他类似toad/plsql 没有测试,但是本人感觉可以 只要字符集一致,就不会出现乱码这种问题
本人测试环境:win7 64bit、oracle11g 32bit client、oracle服务器端:oracle 10.2.0.1.0;
1.查看服务端字符集
第一种方法:select userenv('language') from dual
第二种方法:select * from NLS_DATABASE_PARAMETERS
假设 查询出的 服务端字符集 为 AMERICAN_AMERICA.US7ASCII
2.设置客户端字符集
第一种方法:注册表 改法:regedit ->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraClient11g_home1->NLS_LANG
需要把NLS_LANG的键值备份(以防出错修改回来)
备份后 在修改为 AMERICAN_AMERICA.US7ASCII( 与数据库一致的字符集)
适用于大多数情况。
第二种方法:修改环境变量 我的电脑->右键->属性-》高级系统-》高级->环境变量-》新建用户变量
新建用户变量 变量名:NLS_LANG 变量值:AMSERICAN_AMERICA.US7ASCII(与数据库查询的一一致就好)
适用于多次安装把注册表的oracle节点的键值对删除,对于没有删除注册表的没有测试,建议使用第一种。如果有人测试可以,建议共享出来。