前不久安装好Oracle数据库后出现了中文乱码的问题。查了一下发现字符集有问题,需要改为ZHS16GBK。在网上搜了下发现原则上建库后不允许修改服务端的字符集,不过还是有办法在不重新建库的前提下修改的。以下是具体步骤:
SQL>CONN / AS SYSDBA;
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 INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;
关键点在于INTERNAL_USE参数,使用了这个参数后可以回避字符集的超集和子集的检验。如果不加这个参数的话,那么新的字符集必须是原来字符集的子集方能修改成功。
本文介绍了一种在不重建Oracle数据库的情况下更改其字符集的方法,特别是如何将字符集从默认值更改为ZHS16GBK,以解决中文显示乱码的问题。
9062

被折叠的 条评论
为什么被折叠?



