sqlplus连接oracle乱码
一、现象
41上sqlplus时一堆乱码
二、排查
2.1select * from nls_database_parameters;
NLS_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
2.2select * from nls_instance_parameters;
NLS_LANGUAGE AMERICAN
2.3select * from nls_session_parameters;
NLS_LANGUAGE SIMPLIFIED CHINESE
数据库字符集与客户端字符集一致,但与会话字符集不一致
三、有效方法
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=en_US.UTF-8
四、判定
“会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是altersession完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。”此例中与nls_session_parameters不一致而且Select * from v$nls_parameters;空
有效方法后的环境变量如下:
[oracle@swdx1 ~]$ export
……
declare -x LANG="en_US.UTF-8"
declare -xNLS_LANG="AMERICAN_AMERICA.UTF8"
……
看了看.bash_profile,有一行export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8',测试了一下,应该是受这个影响.
bash下
设置:export 变量名=变量值
删除:unset 变量名
csh下
设置:setenv 变量名 变量值
删除:unsetenv 变量名
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5047.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
