2010-05-06 44 views
1

我有一個在11.1.0.7上運行的非utf8 oracle數據庫。我們需要支持希臘字符。所以我們有兩種選擇:oracle中的al32utf8和SQL Server和DB2拉取數據

  1. 對那些需要希臘字段的字段使用nvarchar,nclob字段(它不是所有字段)。我們已經測試了這一點,並將它用於java編碼。
  2. 將Oracle轉換爲AL32UTF8數據庫。我不是問如何做到這一點。我從Oracle網站/ Oracle支持獲得了此信息。我知道涉及到什麼,有損數據等,增加了數據庫的大小。

我的問題是我們的用戶使用我們的系統,通過數據庫鏈接連接到我們的數據庫,但是使用SQL Server和IBM DB2數據庫。我無法訪問這些數據庫,但我沒有與他們的經驗。如果他們不在UTF-8數據庫中,當他們提取UTF8數據時會發生什麼?

我會假設英文/阿西西字符很好,希臘語最終會成爲垃圾數據。

我還運行了Oracle字符集掃描程序(用於獲取有關字符集轉換影響的信息的oracle命令行實用程序)。它表示我的數據庫的大小會縮減20%左右。這對第三方數據庫的用戶有影響嗎?

這些是我們數據的客戶,並且我可以對他們運行測試有多少訪問權限是有限制的。您所擁有的任何信息都會受到歡迎。

回答

0

「希臘將最終成爲垃圾數據」。 連接的每個會話都將具有NLS設置。如果你不知道它們,你可以用LOGON觸發器和v $ nls_paramters查詢來捕獲它們。

Oracle將盡最大努力將數據庫中的字符轉換爲客戶端字符集中的可比較字符。 Windows字符集應與希臘數據一致。不確定DB2