修改 Oracle9i 字符集
由于本人的操作系统是英文的,在开始做项目时,有些地方不能正确显示汉字。当时怀疑是操作系统的问题,但后来发现凡是从数据库中读出来的汉字都显示为乱码,不从数据库中读出来的数据能正常显示。我用的是Oracle9i 数据库,于是将疑点锁定到Oracle的字符集身上。上网查了许久,试了很多办法最终才修改成功,现把修改方法写下,以供大家参考:(最好先做好数据库的备份工作,以免发生意想不到的事情)
首先,打开Oracle9i 的 SQL Plus;
然后按以下步骤修改:
SQL> conn /as sysdba (先确保系统已采取OS认证方式,否则会连接不成功)
SQL> shutdown immediate 先关闭database,才能执行以下操作
SQL> conn /as sysdba 以超级权限连接
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter system set AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database CHARACTER SET ZHS16CGB231280;
SQL> shutdown immediate; 更改完关闭数据库
SQL> startup; 正常启动 使其生效
SQL> conn /as sysdba
SQL> shutdown immediate
SQL> conn /as sysdba
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>
现在打开数据库中的任一张表,发现乱码终于变成了中文,不过所有的汉字都变成了一个字——“靠”,这个原因可能是修改字符引起的。所以现在必须重新建立数据库,之后就可以正常显示汉字了。本方法在我的机器上测试成功,若有不足之处还请见谅。