• Windows常用中文字符集set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK


    1. NLS_LANG 参数组成
    NLS_LANG参数由以下部分组成:
    NLS_LANG=<Language>_<Territory>.<Clients Characterset>
    NLS_LANG各部分含义如下:
    LANGUAGE指定:
    -Oracle消息使用的语言
    -日期中月份和日显示
    TERRITORY指定
    -货币和数字格式
    -地区和计算星期及日期的习惯
    CHARACTERSET:
    -控制客户端应用程序使用的字符集
    通常设置或者等于客户端(如Windows)代码页
    或者对于unicode应用设置为UTF8
    在Windows上查看当前系统的代码页可以使用chcp命令:
    E:>chcp
    活动的代码页: 936
    代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
    http://www.microsoft.com/globaldev/reference/dbcs/936.htm

    2. 查看 NLS_LANG 的方法
    Windows使用:
    echo %NLS_LANG%
    如:
    E:>echo %NLS_LANG%
    AMERICAN_AMERICA.ZHS16GBK
    Unix使用:
    env|grep NLS_LANG
    如:
    /opt/oracle>env|grep NLS_LANG
    NLS_LANG=AMERICAN_CHINA.ZHS16GBK
    Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
    HKEY_LOCAL_MACHINESOFTWAREORACLEHOMExx
    xx指存在多个ORACLE_HOME时系统编号。

    3. 查看数据库当前字符集参数设置
    SELECT * FROM v$nls_parameters;

    4. 查看数据库可用字符集参数设置
    SELECT * FROM v$nls_valid_values;

    5. 客户端 NLS_LANG 的设置方法
    Windows:
    # 常用中文字符集
    set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    # 常用unicode字符集
    set NLS_LANG=american_america.AL32UTF8
    可以通过修改注册表键值永久设置
    HKEY_LOCAL_MACHINESOFTWAREORACLEHOMExxNLS_LANG
    Unix:
    # 常用unicode字符集
    export NLS_LANG=american_america.AL32UTF8
    # 常用中文字符集
    export NLS_LANG="Simplified Chinese_china".ZHS16GBK
    可以编辑 bash_profile 文件进行永久设置
    vi .bash_profile
    NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
    # 使 bash_profile 设置生效
    source .bash_profile
    =================================================================================
    [Q]怎么样查看数据库字符集  
      [A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
      
      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
      
      表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
      
      会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
      
      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
      
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
      
      [Q]怎么样修改字符集
      
      [A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
      
      Startup nomount;
      Alter database mount exclusive;
      Alter system enable restricted session;
      Alter system set job_queue_processes=0;
      Alter database open;
      Alter database character set zhs16gbk;


    [Q]怎么样查看数据库字符集  
      [A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
      
      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
      
      表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
      
      会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
      
      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
      
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
      
      [Q]怎么样修改字符集
      
      [A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
      
      Startup nomount;
      Alter database mount exclusive;
      Alter system enable restricted session;
      Alter system set job_queue_process=0;
      Alter database open;
      Alter database character set zhs16gbk;

  • 相关阅读:
    YAR 并行RPC框架研究
    Yar
    Monolog
    laravel controller:make
    eclipse自动补全的设置(自动提示)
    如何在 PHP 中处理 Protocol Buffers 数据
    JAVA printWriter中write()和println()区别
    eclipse中启动tomcat
    Ajax简介
    div
  • 原文地址:https://www.cnblogs.com/liuys635/p/13348054.html
Copyright © 2020-2023  润新知