修改 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;                            正常启动 使其生效

    修改的截图如下:

 修改 Oracle9i 字符集

修改 Oracle9i 字符集 

  现在打开数据库中的任一张表,发现乱码终于变成了中文,不过所有的汉字都变成了一个字——“靠”,这个原因可能是修改字符引起的。所以现在必须重新建立数据库,之后就可以正常显示汉字了。本方法在我的机器上测试成功,若有不足之处还请见谅。
    其实在安装Oracle9i的时候,就有字符集的选择,只不过当时是按默认的选择安装的,导致多走了许多弯路。今后在装Oracle的时候选择上合适的字 符集就好了,这要根据自己的实际情况而定。如果本身是中文操作系统,安装的又是中文版Oracle,默认就可以了。其它情况类似,这里不再啰嗦。 

你可能感兴趣的:(oracle)