Linux 下修改Oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
来源:互联网 发布:东莞淘宝美工培训学费 编辑:程序博客网 时间:2024/05/10 18:56
问题描述:同事在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.
- Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- Linux 下修改Oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- Linux 下修改Oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- 转: Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- oracle的字符集:WE8ISO8859P1 , ZHS16GBK
- Oracle 10g修改数据库字符集:WE8ISO8859P1=>ZHS16GBK
- oracle 修改字符集 为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- oracle 修改字符集 修改为ZHS16GBK
- AIX下oracle 10g 修改字符集为ZHS16GBK
- Oracle 10g 修改字符集 为 ZHS16GBK
- Oracle 11g 修改字符集 为 ZHS16GBK
- 修改oralce11g 字符集为ZHS16GBK
- 修改 oracle xe 字符集 ZHS16GBK
- xs128之OLED12864
- dede 实现栏目文章的统计功能
- 黑马程序员—正则表达式
- android的SPinner外观样式
- 第二章 内存寻址
- Linux 下修改Oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- [c语言]模拟银行atm机,实现存款、取款等业务
- Scolloview中嵌套listview,则焦点冲突,listview只显示一行
- Eclipse开发andriod程序时import android.support.v4或者import android.support.v7提示导入错误解决办法
- 三种方法解决android帮助文档打开慢
- 如果做一个精美的Login界面(解决了一EditText自带clear的功能,类似iphone的UITextField)
- maven的安装
- 基于plusgantt的项目管理系统实战开发视频教程
- Logic java 第一章初识java