修改Oracle数据库字符集

查看字符集语句

select userenv('language') from dual

若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命
令关闭数据库服务器,然后执行以下命令:
SQL>shutdown immediate
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 ZHS16GBK
*
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP

 

 

备注(与上边无紧密联系)

----------------------------------

安装Oracle时选择高级安装,这样自己可以设置字符集(在我们的项目中用的utf-8d ),在设置时选utf-8. 开始的时候选择了两种语言(英文,中文),到最后查看服务器字符集的时候是 chinese.AL32UTF8 而不是american.AL32UTF8。所以出现了乱码。这时在服务器设置环境变量如图

然后解决了乱码的问题。

还有一个注意点,就是如果建表,插入数据是sql文件,还得保证你的sql文件和服务器的字符集编码是一致的否则也会有乱码出现。 操作系统的默认编码可能不是你的服务器的编码格式。最好用ue编辑器另存一下sql文件,这时候会有选择编码格式,这样就可以控制好初始化文件的字符集了。

 

 -----------------与上边无关---------------

american_america.AL32UTF8  

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

posted on 2013-09-30 13:11  中子持心  阅读(688)  评论(0编辑  收藏  举报

导航