想请问 1、系统中的 NLS_LANG 变量如何设置?2、ORACLE 中的 NLS_LANG 又是如何设置的?

解决方案 »

  1.   

    在主机端,看到服务器的字体设置为:
    bash-2.03$ echo $NLS_LANG
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    bash-2.03$ 在客户端看到字体设置为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK是一致的
      

  2.   

    LZ是什么操作系统?
    Windows在注册表中能够查看到
    KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
    linux下:$NLS_LANG
      

  3.   

    所谓的在系统中设置 NLS_LANG 变量和在 oracle 中设置 NLS_LANG 变量就一步动作吗,即在注册表里面设置KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG 的值吗如果我想设置成 utf-8 该如何设置
      

  4.   

    american_america.UTF8
    修改这个值会对程序有微妙影响,某些SQL文执行效果不同
      

  5.   

    在KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG  修改,这样的话也只是把客户端的编码修改成 UTF8如何把数据库 database 的编码也修改成 UTF8
      

  6.   

    linux下直接export NLS_LANG=.....就行了如果希望下次开机仍然有效的话,建议将其写入~/.bash_profile或者是~/.bashrc
      

  7.   

    那 windows 呢,怎么设置的
      

  8.   

    windows在cmd下,直接set nls_lang=''就行了
      

  9.   

    设置系统环境变量, 其取值为:语言_地区.字符集这三个部分可从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
      

  10.   

    就直接进入cmd ,然后set nls_lang = american_america.UTF8 就可以把数据库的编码设置为 UTF8格式的了吗
      

  11.   

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

  12.   


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

  13.   

    TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950 :繁中
    american_america.UTF8 :UTF-8