zoukankan      html  css  js  c++  java
  • [原创] 查看与修改oracle数据库字符集


    NLS_LANG参数格式

        NLS_LANG=<language>_<territory>.<client character set>

        Language:显示oracle消息,校验,日期命名
        Territory:指定默认日期、数字、货币等格式
        Client character set:指定客户端将使用的字符集

        例如:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
        AMERICAN是语言,AMERICA是地区,ZHS16GBK是客户端字符集


    1. 查看服务器端字符集:

    视图 "nls_database_parameters" 来源于props$,是表示数据库的字符集。 props$是创建数据库时存储在数据库中的信息。

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

    select userenv('language') from dual;


    // 示例

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')
    ----------------------------------------------------
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    SQL>

    2. 查看实例字符集:

    视图 "nls_instance_parameters" 来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

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


    视图 "nls_instance_parameters" 由参数文件决定,只受参数文件的影响,而不受环境变量影响


    3. 查看会话字符集:

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

    select * from v$nls_parameters where parameter in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET') ;


    视图 "nls_session_parameters" 取值与V$NLS_PARAMETERS,它的查询结果默认会从nls_instance_parameters继承

    但是如果,我们在环境变量或者通过ALTER SESSION 改变了nls的相关参数,则会覆盖默认值。

    // 设置

    alter session set NLS_LANGUAGE=AMERICAN ;

    alter session set NLS_LANGUAGE="SIMPLIFIED CHINESE" ;

    // 示例

    SQL> col value format a30
    SQL> col parameter format a30
    SQL> select * from v$nls_parameters;

    PARAMETER                            VALUE
    ------------------------------ ------------------------------
    NLS_LANGUAGE                       SIMPLIFIED CHINESE           <====语言
    NLS_TERRITORY                      CHINA                                <====区域
    NLS_CURRENCY                       ¥
    NLS_ISO_CURRENCY                CHINA
    NLS_NUMERIC_CHARACTERS         .,
    NLS_CALENDAR                        GREGORIAN
    NLS_DATE_FORMAT                  DD-MON-RR
    NLS_DATE_LANGUAGE              SIMPLIFIED CHINESE
    NLS_CHARACTERSET                ZHS16GBK                        <====数据库字符集 (此参数须与服务器字符集一致)
    NLS_SORT                               BINARY
    NLS_TIME_FORMAT                   HH.MI.SSXFF AM

    PARAMETER                               VALUE
    ------------------------------ ------------------------------
    NLS_TIMESTAMP_FORMAT            DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT                HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT       DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY                 ¥
    NLS_NCHAR_CHARACTERSET        AL16UTF16                 <====国家字符集
    NLS_COMP                                   BINARY
    NLS_LENGTH_SEMANTICS             BYTE
    NLS_NCHAR_CONV_EXCP              FALSE

    已选择19行。

    SQL>

    4. 查看客户端字符集

    windows: start --> run --> regedit --> Ctrl+F --> NLS_LANG

    unix:    echo $NLS_LANG


    // 设置客户端字符集

    windows平台下

    C:> set nls_lang=AMERICAN_AMERICA.ZHS16GBK 

    这样就只影响这个窗口里面的环境变量。

    或者,修改注册表里面相应OracleHome的NLS_LANG的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,可以永久生效。

    unix平台下,就是环境变量NLS_LANG。

    $export $NLS_LANG="AMERICAN_AMERICA"."ZHS16GBK"


    如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。


     

  • 相关阅读:
    写给Web开发人员看的Nginx介绍
    Nginx安装及配置详解
    Intellij IDEA 热部署处理
    JSP自定义标签就是如此简单
    过滤器入门看这一篇就够了
    Caffe FCN:可视化featureMaps和Weights(C++)、获取FCN结果
    Caffe RPN :error C2220: warning treated as error
    实例分割:MaskXRCnn 与Visual Genome数据集
    Detectron-MaskRCnn: 用于抠图的FCNN
    CaffeMFC:caffe.pb.h(2525): error C2059: syntax error : 'constant'
  • 原文地址:https://www.cnblogs.com/fengaix6/p/3902672.html
Copyright © 2011-2022 走看看