Oracle DBA 可能試過導入一個完整的數據庫導出——他們只得到了有關字符集不兼容的警告
這個問題比較雜
因為默認字符集是 ASCII
而國際數據庫推薦使用的字符集則是 Unicode 字符集之一
比如說 AL
UTF
我們很容易在沒有意識到數據庫字符集不支持非 ASCII 數據之前已經建立了一個數據庫並開始了開發
開發人員可以使用字符集掃描(CSSCAN)工具來避免這個問題
該工具自動安裝在 Oracle
i中
如果你正在使用其它的數據庫版本
那麼你可以從Oracle 技術網下載 CSSCAN
在運行該工具之前
你需要安裝屬於 CSMIG 用戶的一套表和過程
腳本csminst
sql要麼在 Oracle Home之下的rdbms/admin 目錄下
要麼在可下載的發布版本中
運行這個腳本需要 DNA 賬戶(在 Oracle
i中以 SYSDBA 身份登錄)
在數據庫上以 DBA 賬戶運行 CSSCAN 工具的方法是在命令行提示符下鍵入 CSSCAN /
該程序提示參數的方式與 EXP 類似
你可以在命令行以如下方式輸入參數
CSSCAN SYSTEM/MANAGER FULL=y TOCHAR=AL
UTF
ARRAY=
PROCESS=
鍵入 CSSCAN HELP=Y可以查看完整的參數列表
(要保證有要移值的字符集的標示符
比如說 AL
UTF
或者 Oracle
的 UTF
)在運行了該工具之後
在當前的目錄下可能創建了三個文件
scan
err
scan
out和 scan
txt
這些文件包含掃描的結果
例如
我在一個 UTF
數據庫中插入了chr(
)到一個文本列中
這個字符不是一個有效的 UTF
序列
而對於 Web 用戶來說這是一個普通的字符
在scan
err中顯示的 CSSCAN 的輸出為
User : SCOTT
Table : TMPTABLE
Column: TEXT
Type : VARCHAR
(
)
Number of Exceptions :
Max Post Conversion Data Size:
ROWID Exception Type Size Cell Data(first
bytes)
AAAHboAABAAAMYyAAA lossy conversion ?
在糾正了由該工具報告的這些錯誤之後
你就可以以目標字符集使用數據庫移值工具(比如說dbassist)將數據移值到一個新數據庫中了
From:http://tw.wingwit.com/Article/program/Oracle/201311/18277.html