暂无图片
分享
朱德润
2019-05-07
oracle同一实例不同用户的nls_language显示不同值

对于同一个实例,不同人员的不同机器登录 PL/SQL显示的userenv的值不一样(一个是AMERICAN 一个是CHINESE),但是不同机器都使用sqlplus登录,显示的nls_language的值和userenv的都是一样的!(都是AMERICAN),请问这是怎么回事?PL/SQL的设置原因吗?如果是 该如何修改呢?(同时对于sqlplus命令登录该如何修改呢?)

收藏
分享
6条回答
默认
最新
Moone

这个是pl/sql工具和sqlplus工具的环境决定的:

1、pl/sql默认根据OS的语言环境设置userenv,中文windows一般就是SIMPLIFIED CHINESE

2、sqlplus是根据NLS_LANG参数或者$ORACLE_HOME/sqlplus/admin/glogin.sql决定的


可以采用如下方法定制:

pl/sql developer的安装目录,找到AfterConnect.sql脚本,加入希望设置的SQL,如:

alter session set nls_language=American; 

alter session set NLS_TERRITORY=America;


重启pl/sql就可以了:

image.png


暂无图片 评论
暂无图片 有用 0
朱德润

好的 谢谢!

暂无图片 评论
暂无图片 有用 0
朱德润

为何修改了pl/sql的AfterConnect的脚本之后 userenv显示已经是想要的值 但是查询表的数据的记录还是显示不完整!

暂无图片 评论
暂无图片 有用 0
朱德润

tmp_03e1a2d7fcc5d90f889c2f79c039e920c783fb3de8802a94.jpg

暂无图片 评论
暂无图片 有用 0
Moone

具体啥情况,截图看看,sqlplus正常吗?

暂无图片 评论
暂无图片 有用 0
章芋文
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏