l Oracle服务器内部的字符集
l NLS_LANG变量里保存的字符集
l 客户端应用的字符集
Oracle服务器内部的字符集
这是Oracle数据库存储数据使用的字符集。
在Oracle中可能使用
Select userenv('language') from dual;
或者:
Select name, value$ from props$;服务器为windows server 2003,正常安装完oracle客户端后,插入数据时,发现中文都是?。
异常:
PLL/SQL中输入select userenv('LANGUAGE') From Dual,结果为AMERICAN_AMERICAUS7ASCII,
注册表中[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home]下的
NLS_LANG为SIMPLIFIED CHINESE_CHINAZHS16GBK。
解决方法:
我的电脑---右击---属性---高级---环境变量---系统变量---新建
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK,确定后再试试,OK。oracle11g的安装过程是这样的:
1)安装必需的oracle11g依赖库;
2)创建oracle用户;
3)添加oracle环境;
4)切换oracle用户登陆系统;
5)运行oracle11g安装程序。
oracle11g出现乱码应该只会在安装oracle11g的界面,都是正方框。对于这种情况,应该在终端按以下顺序执行代码:
export LANG=C;export LC_ALL=C
cd /opt/install_oracle11g/database
/runInstaller
上面的/opt/install_oracle11g/database是oracle安装包所在路径,改为你自己的即可。
显示临时空间、交换空间的显存都符合要求后,过会就会d出英文的安装界面。
打开PLSQL
d出登陆界面,进去登陆
随便写了一个查询语句,发现显示有乱码
解决办法:
先查看oracle服务器端的字符编码是什么
配置一个环境变量就可以解决问题
变量名称:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK
按照下面图是
加好环境变量之后关闭PLSQL重新打开,写一个查询试试效果
如下图所示说明乱码问题解决。
查找注册表32位在:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ORACLE\HOMExx\NLS_LANG(这里是32位的应用程序在64位windows系统中,注册表位置在"WOW6432NODE"下。)64位在:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG(这里是64位的应用程序在64位windows系统中,注册表位置直接在"SOFTWARE"下。)所以修改客户端NLS_LANG需要看清注册表地址。切记。解决方法:将服务器的DB客户端的NLS_LANG改为SIMPLIFIED CHINESE_CHINAAL32UTF8将笔记本的DB客户端的NLS_LANG也改为SIMPLIFIED CHINESE_CHINAAL32UTF8这样笔记本DB客户端输入中文的时候,编码会转为AL32UTF8。服务器上客户端也能对应解码。如果将笔记本DB客户端NLS_LANG设置为ZHS16GBK。在编码转换显示的时候,就会出现乱码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)