oracle 中 NLS_LANG变量如何设置

hshbs 2009-05-13 05:24:32
想请问

1、系统中的 NLS_LANG 变量如何设置?

2、ORACLE 中的 NLS_LANG 又是如何设置的?
...全文
6441 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hshbs 2009-08-11
  • 打赏
  • 举报
回复
TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950 :繁中
american_america.UTF8 :UTF-8
jarry1666 2009-05-14
  • 打赏
  • 举报
回复
我记得要给存储过程加密的时候需要设置一下这个变量的值,想问这是为什么?
hshbs 2009-05-14
  • 打赏
  • 举报
回复
就直接进入cmd ,然后set nls_lang = american_america.UTF8 就可以把数据库的编码设置为 UTF8格式的了吗
mosaic 2009-05-14
  • 打赏
  • 举报
回复
设置系统环境变量, 其取值为:

语言_地区.字符集

这三个部分可从nls_database_parameter视图中得到:

select * from nls_database_parameters where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY','NLS_CHARACTERSET');

如:
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CHARACTERSET ZHS16GBK

那么NLS_LANG就设置为:AMERICAN.AMERICA_ZHS16GBK

阿三 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hshbs 的回复:]
那 windows 呢,怎么设置的
[/Quote]
windows在cmd下,直接set nls_lang=''就行了
hshbs 2009-05-14
  • 打赏
  • 举报
回复
那 windows 呢,怎么设置的
Tomac 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hshbs 的回复:]
就直接进入cmd ,然后set nls_lang = american_america.UTF8 就可以把数据库的编码设置为 UTF8格式的了吗
[/Quote]

数据库的没有变化. NLS_LANG只影响客户端呈现的类型. 如何和数据库不兼容,则乱码.

wsj811 2009-05-14
  • 打赏
  • 举报
回复
想把数据库的SERVER也改成UTF-8??
可以是可以不过方法有点危险
1.将现有数据库完整导出成DUMP文件(导出时客户端的nls_lang设置为UTF8)
2.然后新建一个UTF8的库再导进去(同样客户端的nls_lang设置为UTF8)
危险性:UTF8环境下对字符的长度定义是不同的。ORACLE的最大可认标识符为30位 汉字的长度由原来的2位变成3位,有些符号甚至达到8位 如果在你的代码中 有别名或者变量名超过长度的会报错。
最好的方法还是全部导出成SQL脚本文件去做(PLSQL工具可以完成)
puheavy123 2009-05-13
  • 打赏
  • 举报
回复
linux下直接export NLS_LANG=.....就行了

如果希望下次开机仍然有效的话,建议将其写入~/.bash_profile或者是~/.bashrc
hshbs 2009-05-13
  • 打赏
  • 举报
回复
在KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG 修改,这样的话也只是把客户端的编码修改成 UTF8

如何把数据库 database 的编码也修改成 UTF8
wsj811 2009-05-13
  • 打赏
  • 举报
回复
american_america.UTF8
修改这个值会对程序有微妙影响,某些SQL文执行效果不同
hshbs 2009-05-13
  • 打赏
  • 举报
回复
所谓的在系统中设置 NLS_LANG 变量和在 oracle 中设置 NLS_LANG 变量就一步动作吗,即在注册表里面设置KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG 的值吗

如果我想设置成 utf-8 该如何设置
lwh_1024 2009-05-13
  • 打赏
  • 举报
回复
LZ是什么操作系统?
Windows在注册表中能够查看到
KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
linux下:$NLS_LANG
bzcnc 2009-05-13
  • 打赏
  • 举报
回复
在主机端,看到服务器的字体设置为:
bash-2.03$ echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
bash-2.03$

在客户端看到字体设置为:

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

是一致的

17,091

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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