zoukankan      html  css  js  c++  java
  • linux 修改oracle字符集

    问题描述:同事在Linux下安装的Oracle,默认的字符集没有修改,使用的是WE8ISO8859P1,不能够支持中文,
    
    问题表现为,客户端录入的中文数据可以显示,提交之后再查询出来后中文会显示为???。问题出在oracle服务端的字符集不支持中文导致。
    
    可以通过:
    
    select   userenv('language')   from   dual; 命令可以查看服务端的使用的字符集。
    
    或者select   *   from   V$NLS_PARAMETERS;命令也可以
    
    以及 select * from SYS.PROPS$;
    
    确定了问题后就Google了一下,网上倒是有很多这方面的资料。可能是自己的环境和他们的不一致的原因,按照网上的那些步骤我的问题没有解决。
    
    问题根源找到了就好解决了,参考着网上的资料自己的解决步骤如下:
    
    总的来说有两个思路:
    
    1、重新安装
    
    2、修改字符集
    
    注:第一个方法没有用,觉得重装不是我喜欢的道道,解决问题是根本。所以我选择的是第二种方式。
    
    网上很多人说,oracle服务端安装好了之后字符集是不可以更改的,实践证明是可以修改的,至少oracle8以上的版本都是可以修改的。
    
    我的解决步骤:
    
    1、ssh登录,切换到oracle用户
    
    切换用户命令:su -oracle
    
    之后用sqlplus登录oracle,命令:
    
    :sqlplus /nolog
    
    :connect /as sysdba
    
    这样就登录了。
    
    2、更改字符集
    
    首先 sqlplus登录后,关闭oracle数据库
    
    1.shutdown immediate ;     
    2.startup mount ;     
    3.alter  system enable restricted session ;      
    4.alter  system  set  JOB_QUEUE_PROCESSES=0;      
    5.alter  system  set  AQ_TM_PROCESSES=0;      
    6.alter   database   open  ;      
    7. alter database character set INTERNAL_USE ZHS16GBK;      
    8.shutdown immediate ;     
    9.startup ;    
    
    注:一开始我按照上面的步骤没有解决,因为在第7步的时候有的资料提示使用alter database character set ZHS16GBK;我试过,这个命令不行,我使用的是alter database character set INTERNAL_USE ZHS16GBK; 提示修改成功。同样,如果在startup mount 下命令提示error的话,可以尝试在startup restrict下运行第七步的命令。
    
    以下是我的调试命令记录,大家可以参考一下,那些提示错误的命令都是执行失败的,可以不必管。
    
    SQL> conn /as sysdba
    Connected.
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.
    
    Total System Global Area  285212672 bytes
    Fixed Size                  1218992 bytes
    Variable Size             104859216 bytes
    Database Buffers          176160768 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    SQL> alter system enable restricted session;
    
    System altered.
    
    SQL> alter system set job_queue_processes=0;
    
    System altered.
    
    SQL> alter system set aq_tm_processes=0;
    
    System altered.
    
    SQL> alter database open;
    
    Database altered.
  • 相关阅读:
    SignalR 持久链接 (该功能为手机设备与后台同个用户id进行实现的,仅用signalR学习参考)
    SQL SERVER 分割符转列
    js时间计算加减
    SQL查询历史执行语句
    MSSQL 多行数据串联字符分割单行
    居于HttpWebRequest的HTTP GET/POST请求
    硬件UDP读数AsynUdpClient
    SQL取分组数据的所有第一条数据
    Python 文件的使用
    Python 数据类型
  • 原文地址:https://www.cnblogs.com/kexb/p/6839974.html
Copyright © 2011-2022 走看看