oracle字符集修改

对于新手来说,在安装一个全新的数据的时候,很有可能忽略掉字符集的设置,如果数据库已经安装好了才发现,可以采取以下的方式来进行修改:

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;

  SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;

  SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP

  注意:如果没有大对象,在使用过程中进行语言转换没有什么影响,(切记设定的字符集必须是ORACLE支持,不然不能start)按上面的做法就可以,但是可能会出现‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data exists’ 这样的提示信息

  要解决这个问题有两种方法

  一个是,利用INTERNAL_USE 关键字修改区域设置,

  还有一个是利用re-create,但是re-create有点复杂,所以请用internal_use,

  SQL>SHUTDOWN IMMEDIATE;

  SQL>STARTUP MOUNT EXCLUSIVE;

  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 NATIONAL CHARACTER SET INTERNAL_USE UTF8;

  SQL>SHUTDOWN immediate;

  SQL>startup;

在此记录一下。

请使用浏览器的分享功能分享到微信等