zoukankan      html  css  js  c++  java
  • Linux下更改oracle客户端字符集和服务端字符集

    from:http://blog.csdn.net/chid/article/details/6166506

    Linux 下更改 oracle 客户端字符集和服务端字符集

    1.Linux 下更改 oracle 客户端字符集,即设置环境变量“ NLS_LANG“ 的值

    查看客户端字符集,在终端下执行:

    echo $NLS_LANG

    修改客户端字符集:

    sudo gedit /etc/environment

    在environment 文件中增加以下内容:

    NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

    export NLS_LANG

    重新启动操作系统即可。

    2. 修改 oracle 服务端的字符集。

    查看服务端字符集:

    select userenv('language') from dual;

    修改服务端字符集,终端下执行:

    $ORACLE_HOME/bin/sqlplus /nolog

    进入sqlplus 命令行

    SQL>conn / as sysdba;

    1 ) . 关闭数据库

    SQL>SHUTDOWN IMMEDIATE;

    2 ) 启动到 Mount

    STARTUP MOUNT;

    ALTER SYSTEM ENABLE RESTRICTED SESSION;

    ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

    ALTER SYSTEM SET AQ_TM_PROCESSES=0;

    ALTER DATABASE OPEN;

    ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

    -- 下面一行语句可能会出现错误提示,可以不理会

    ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;

    SHUTDOWN IMMEDIATE;

    STARTUP;

    3. 修改 dmp 文件字符集

    dmp 文件的第2 第3 字节记录了字符集信息,因此直接修改dmp 文件的第2 第3 字节的内容就可以‘骗’过oracle 的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如 US7ASCII ,WE8ISO8859P1 ,ZHS16CGB231280 ,ZHS16GBK 基本都可以改。因为改的只是dmp 文件,所以影响不大。

    具体的修改方法比较多,最简单的就是直接用UltraEdit 修改dmp 文件的第2 和第3 个字节。比如想将dmp 文件的字符集改为ZHS16GBK ,可以用以下SQL 查出该种字符集对应的16 进制代码:

    SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;

    0354

    然后将dmp 文件的2 、3 字节修改为0354 即可。

    Oracle 提供标准函数,对字符集名称及 ID 进行转换 : 

    SQL> select nls_charset_id('ZHS16GBK') from dual;

    NLS_CHARSET_ID('ZHS16GBK')

    --------------------------

    852

    1 row selected.

     

    SQL> select nls_charset_name(852) from dual;

    NLS_CHAR

    --------

    ZHS16GBK

    1 row selected.

     

    十进制转换十六进制 :

    SQL> select to_char('852','xxxx') from dual;

    TO_CH

    -----

    354

  • 相关阅读:
    java之集合Collection 3个例子
    利用 ssh 的用户配置文件 config 管理 ssh 会话
    angularJS--apply() 、digest()和watch()方法
    37.创业团队不是天堂
    Android DiskLruCache 源码解析 硬盘缓存的绝佳方案
    sublime安装AngularJS插件
    angularJS 服务--$provide里factory、service方法
    angularJS--多个控制器之间的数据共享
    angularJS---自定义过滤器
    依赖反转
  • 原文地址:https://www.cnblogs.com/wq3435/p/8024480.html
Copyright © 2011-2022 走看看