前言:

因為專案需求,需要進行資料轉置到公司開發的新系統內,進行後續測試,
從客戶取得dmp檔案,需要在公司的測試環境下進行資料匯入(還原)。

匯入方法請參考:[Database][Oralce] Import database from dmp file (從dmp檔案匯入資料庫),

在匯入過程中,發現中文資料變成亂碼,而原因可能是字元集(Character Set)設定不同導致。
所以我們開始嘗試變更設定測試環境的字元集,是否能解決這個問題。

本篇記載變更字元集過程,提供參考。

執行步驟:

Step:1 open sql plus and login:
           開啟sql plus並且進行登入:




Step:1-1  if you dont login with dba privileges , you can be obtained by command
               "connect / as sysdba".
                如果登入後沒有使用dba權限,可以輸入"connect / as sysdba"取得權限:






Step.2:
shutdown immediate;

Step.3:
STARTUP MOUNT;





Step.4:
ALTER SESSION SET SQL_TRACE=TRUE;






Step.5:
ALTER SYSTEM ENABLE RESTRICTED SESSION;

Step.6:
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

Step.7:
ALTER SYSTEM SET AQ_TM_PROCESSES=0;

Step.8:
ALTER DATABASE OPEN;

Step.9:
ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P1;

           (or ZHT16MSWIN950 , AL32UTF8)





Step.10:
ALTER SESSION SET SQL_TRACE=FALSE;

Step.11:
shutdown immediate;

Step.12:
STARTUP;






Step.13: check parameter of character set:
              檢查是否已變更:

SELECT parameter, value FROM 
v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';





完成以上步驟,就完成字元集切換。
以上步驟是在測試環境操作,操作前請評估您的環境,避免轉換字元集後,
造成資料庫其他問題發生。


操作環境:
OS: Windows 7 Home Premium 64位元
Database: Oracle 11G

參考資料:

TAIWAN DBA FORUM


--
謝謝!