zoukankan      html  css  js  c++  java
  • oracle 11g linux 导入中文字符乱码问题解决

    1. 涉及的字符集

      这个可以分成三块,数据库服务器字符集(server)、实例字符集(instance), 会话字符集(session)

    2. 乱码的原因

      session 的字符集和 server 的字符集不相同导致的

    3. 字符集来源

     3.1 server

      server 来源应该是 db_install.rsp 文件(不确定,没去查), 具体查看修改的方法如下

    -- 查看
    select * from nls_database_parameters;
    select * from sys.props$;
    -- 修改
    shutdown immediate;
    startup mount;
    alter session set sql_trace=true;
    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 al32utf8;
    alter session set sql_trace=false;
    -- 修改 server 的相关字符级
    update sys.props$ set value$='american' where name='nls_language';
    update sys.props$ set value$='al16utf16' where name='nls_nchar_characterset';

    shutdown immediate;
    startup;

     

    我的修改如下:

    -- server --
    NLS_LANGUAGE         -> SIMPLIFIED CHINESE => AMERICAN
    NLS_CHARACTERSET     -> WE8MSWIN1252     => AL32UTF8
    NLS_NCHAR_CHARACTERSET -> UTF8           => AL16UTF16

     3.2 instance 

     这个来源是 dbca.rsp(不确定, 有需要的 可以看 rsp 文件里的注释 )

      3. 3 session

     这个来源是用户当前的环境,如果当前环境没配置,那么就会继承 instance 的相关值,具体修改也比较简单,直接改 oracle 用户的 NLS_LANG 的环境变量值就好了。

    #export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
    export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'

    因为我也不知道用什么值,我是一个一个试的,这里别人说 session 配置的字符集要是 server 是 session 的超集,配置的时候要注意。

    ps: 

      session 要注意,不同的 session 会有不同的值。 

       

    数据库字符集的

  • 相关阅读:
    prometheus 基于文件的目标发现
    prometheus rules
    consul kv使用介绍
    prometheus 标签使用
    prometheus 配置容器 cadvisor监控节点
    prometheus 配置介绍
    Ubuntu 13.10 录音有特别大噪音解决办法
    Ubuntu 13.10 解决虚拟机摄像头无法使用问题
    Ubuntu 13.10 安装软件失败后出现的问题——已安装 post-installation 脚本 返回了错误号 1
    Ubuntu 13.04 VirtualBox在工作区中的切换
  • 原文地址:https://www.cnblogs.com/ashen/p/12623106.html
Copyright © 2011-2022 走看看