Oracle 10g修改字符集的方法:

charsi發表於2010-07-06

Oracle 10g修改字符集的方法:
1.首先執行$ORACLE_HOME/rdbms/admin/csminst.sql,建立一些資料庫物件,包括資料庫使用者
2.備份Oracle資料庫,最好全庫備份;
3.使用csscan命令檢查字符集轉換是否可行.csscan有四種掃描模式:全庫掃描,按使用者掃描,按表掃描,按列掃描.因為我們是改變全庫的字符集,所以要用全庫掃描.並且要求有DBA許可權.
4.執行csscan掃描資料庫:csscan SYSTEM/testdb FULL=y TOCHAR=ZHS16GBK ARRAY=1024000 PROCESS=1
5.掃描結束後,會在當前目錄下產生三個檔案:scan.txt,scan.out,scan.err,我們更多的需要關注scan.err
6.可能需要多執行幾次csscan命令,以確保scan.err中沒有報錯,才能進行字元轉換.
7.沒有問題之後,然後執行$ORACLE_HOME/rdbms/admin/csalter.plb指令碼,進行轉化。轉化的過程中,需要注意,資料庫不能有別的session執行,否則會報錯.另外,由於在轉換的過程中讀取的是CSMIG使用者下的CSM$PARAMETERS表中的資料,因此在轉換前必須用csscan執行一次全庫掃描.

可能會遇到的問題:
Full database scan is required ----需要全表掃描
Exceptional data found in scanner result -----檢查scan.err應該還有錯誤報告
Sorry only one session is allowed to run this script -----還有別的session在執行,斷開連線後再試試.

[@more@]

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

相關文章