熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

在字符集移值之前使用CSSCAN工具

2013-11-13 16:24:27  來源: Oracle 

  Oracle DBA 可能試過導入一個完整的數據庫導出——他們只得到了有關字符集不兼容的警告這個問題比較雜因為默認字符集是 ASCII而國際數據庫推薦使用的字符集則是 Unicode 字符集之一比如說 ALUTF
  
  我們很容易在沒有意識到數據庫字符集不支持非 ASCII 數據之前已經建立了一個數據庫並開始了開發開發人員可以使用字符集掃描(CSSCAN)工具來避免這個問題該工具自動安裝在 Oraclei中如果你正在使用其它的數據庫版本那麼你可以從Oracle 技術網下載 CSSCAN
  
  在運行該工具之前你需要安裝屬於 CSMIG 用戶的一套表和過程腳本csminstsql要麼在 Oracle Home之下的rdbms/admin 目錄下要麼在可下載的發布版本中運行這個腳本需要 DNA 賬戶(在 Oraclei中以 SYSDBA 身份登錄)
  
  在數據庫上以 DBA 賬戶運行 CSSCAN 工具的方法是在命令行提示符下鍵入 CSSCAN /該程序提示參數的方式與 EXP 類似你可以在命令行以如下方式輸入參數
  
  CSSCAN SYSTEM/MANAGER FULL=y TOCHAR=ALUTF ARRAY= PROCESS=
  
  鍵入 CSSCAN HELP=Y可以查看完整的參數列表(要保證有要移值的字符集的標示符比如說 ALUTF 或者 Oracle 的 UTF)在運行了該工具之後在當前的目錄下可能創建了三個文件scanerrscanout和 scantxt這些文件包含掃描的結果
  
  例如我在一個 UTF 數據庫中插入了chr()到一個文本列中這個字符不是一個有效的 UTF 序列而對於 Web 用戶來說這是一個普通的字符在scanerr中顯示的 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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.