请问:电脑上只装了oracle服务端,为什么我一配置NLS_LANG环境变量,sqlplus界面就乱码?

QQ824219654 2018-07-22 10:57:05
各位好!
第一次发帖,以前都只是看,还请多多关照。
我配置的NLS_LANG环境变量如下:

sqlplus乱码界面:

就是sqlplus界面乱码,查询出的数据不乱码,我删除NLS_LANG环境变量,就不乱码了,请教这是为啥呀?谢谢啦!

...全文
277 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
引用 5 楼 minsic78 的回复:
[quote=引用 4 楼 QQ824219654 的回复:]
回复3楼:你指的是我的服务端字符集是al32utf8,客户端配置成zhs16gbk么?可是我没有安装Oracle客户端,我的操作系统是windows10 专业版


没安装客户端也一样,只要你是中文操作系统。
然而不知道你的sqlplus怎么来的。。。[/quote]oracle服务端自带的sqlplus
minsic78 2018-07-23
  • 打赏
  • 举报
回复
引用 4 楼 QQ824219654 的回复:
回复3楼:你指的是我的服务端字符集是al32utf8,客户端配置成zhs16gbk么?可是我没有安装Oracle客户端,我的操作系统是windows10 专业版


没安装客户端也一样,只要你是中文操作系统。
然而不知道你的sqlplus怎么来的。。。
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
回复3楼:你指的是我的服务端字符集是al32utf8,客户端配置成zhs16gbk么?可是我没有安装Oracle客户端,我的操作系统是windows10 专业版
minsic78 2018-07-23
  • 打赏
  • 举报
回复
如果你的客户端是中文windows,那么NLS_LANG设置成ZHS16GBK,别设置成AL32UTF8
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
应该也是CHINESE CHINA AL32UTF8,我现在电脑没带在身边,中午确认下再给你回复。你能给我点思路,有哪些原因会造成这样么?我会根据每个人的贡献,不管是思路、解决办法等,给分的,谢谢啦。
  • 打赏
  • 举报
回复
看一下 nls_database_parameters
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
还有两个问题我没搞懂,如果有哪位仁兄想一抒己见,请在楼后留言,或者加我qq:824219654。无论哪种方式,只要能解决问题,本人均将赠送一点积分,虽然不多,聊以共勉。
结贴!
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
非常感谢minsic78和学海无涯回头是岸_两位的帮助。由于我是看了6楼的信息解决的问题(虽然3楼的时候minsic78已经说过了,恕我愚钝,没理解),我测试了一下午,完美解决我的问题,但是由于学海无涯回头是岸_找到了我没发现的东西并且也提出了相同的思路(虽然那会我已经按照6楼的信息解决了问题),我想了想决定给minsic78 40积分,学海无涯回头是岸_ 10积分。积分很少,我知道两位都不缺这点,但是是我的感谢之情。深鞠躬,再次感谢两位无私的帮助。
最后,祝csdn越办越好,大家学有所成!
minsic78 2018-07-23
  • 打赏
  • 举报
回复
NLS_LANG变量值中,“.”后面的才是字符集
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
回复10楼:我先安装的软件,注册表是ZHS16GBK后创建的实例。为什么我建实例的时候选择的是简体中文,nls_database_parameters的nls_language还是american呢?还有,select userenv('language') from dual;和nls_database_parameters的区别在哪呢?我在网上看,别人说这两种都能查询服务端字符集。
  • 打赏
  • 举报
回复
你设置为和你database 服务器一样的字符集 也行 AMERICAN _ AMERICA. AL32UTF8。只是提示是英文
  • 打赏
  • 举报
回复
你把你windows上边的操作系统的NLS_LANG 设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 试试
minsic78 2018-07-23
  • 打赏
  • 举报
回复
引用 6 楼 QQ824219654 的回复:
[quote=引用 5 楼 minsic78 的回复:]
[quote=引用 4 楼 QQ824219654 的回复:]
回复3楼:你指的是我的服务端字符集是al32utf8,客户端配置成zhs16gbk么?可是我没有安装Oracle客户端,我的操作系统是windows10 专业版


没安装客户端也一样,只要你是中文操作系统。
然而不知道你的sqlplus怎么来的。。。[/quote]oracle服务端自带的sqlplus[/quote]

你的中文windows上,装了服务器端软件,对吗?那也一样,NLS_LANG也一样设置为ZHS16GBK,这个变量设置和你oracle数据库的字符集什么其他的都没有关系,只和你客户端(无论是装的软件是客户端软件还是服务器端软件,只要你作为客户端去连接oracle服务,那么这边就是客户端)的操作系统软件的字符集有关系,只要你是中文windows,那么NLS_LANG变量就应该设置为ZHS16GBK。

另外,plsql这个工具的表现也许会和sqlplus不太一样,如果想要安全点,最好用sqlplus做调试。
QQ824219654 2018-07-23
  • 打赏
  • 举报
回复
引用 1 楼 baidu_36457652 的回复:
看一下 nls_database_parameters

还真是,但是为啥呢?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧