1. 程式人生 > >Oracle11g 字符集 AL32UTF8 修改為ZHS16GBK詳解

Oracle11g 字符集 AL32UTF8 修改為ZHS16GBK詳解

   首先嚐試下面方式更改HP伺服器資料庫字元:

   嘗試方法一:在sys/sys 下面執行下面語句:(失敗)

   注:SQL> alter database CHARACTER SET ZHS16GBK;    alter database CHARACTER SET ZHS16GBK   結果報下面錯誤:    ERROR 位於第 1 行:    ORA-12712: 新字符集必須為舊字符集的超集。  

   注:超集解釋:如果s1集合包含s2集合中的每一個元素,並且s1集合中有可能包含s2集合中不含有的元素時,那麼稱s1是s2的超級。說明AL32UTF8包含ZHS16GBK。

  嘗試方法二:用scott/tiger 登陸 sqlplus 然後connect sys/sys as sysdba,然後輸入命令即可,文中標紅的請用自己設定的密碼。(此方法測試後成功!)

  然後在sqlplus介面依次執行以下sql語句:

   若此時資料庫伺服器已啟動,則先執行SHUTDOWN IMMEDIATE命令關閉資料庫伺服器,然後執行以下命令:注:每條sql語句都會有相應的提示,請輸入時務必仔細。   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

      最後重啟oracle11g監聽和服務,重新登入PL/SQL developer ,

     執行select userenv('language') nls_lang from dual; 發現目標資料庫字符集如下,已經正確修改為SIMPLIFIED      。CHINESE_CHINA.ZHS16GBK。

    NLS_LANG

    ----------------------------------------------------     SIMPLIFIED CHINESE_CHINA.ZHS16GBK

--------------------- 本文來自 一凡孟 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/mfl0315/article/details/41929775?utm_source=copy