oracle字符集修改

skuary發表於2011-04-15

對於新手來說,在安裝一個全新的資料的時候,很有可能忽略掉字符集的設定,如果資料庫已經安裝好了才發現,可以採取以下的方式來進行修改:

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;

在此記錄一下。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25618347/viewspace-714066/,如需轉載,請註明出處,否則將追究法律責任。

相關文章