Db2

DB2 問題中的荷蘭語字元

  • April 2, 2013

好的,首先,我對數據庫的了解非常有限。

接下來的問題是:我插入了幾行包含荷蘭語字元的數據,例如不同國家的名稱。一些國家/地區的名稱末尾有荷蘭語特殊字元 ë,或者像烏克蘭一樣在 i 上有兩個點(Servië、Oekraïne、Tunesië、Somalië 等)。數據庫中的這些字元如下所示:ë -> A≈ 和 ï -> AZ。

當然,我希望這些荷蘭語字元顯示在數據庫中。

好吧,訣竅是數據庫只能在創建時指定它用於哪個“語言環境”。創建數據庫時,您可以通過指定程式碼集、區域和排序規則(範例CREATE DATABASE MYDB AUTOMATIC STORAGE YES ON '/data' DBPATH ON '/dbdir' USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM)來指定您想要的內容,或者讓 DB2 根據一些系統設置進行猜測。

您可以通過執行檢查您的設置db2 get db cfg for <db name>。在上面使用的情況下,您將看到以下內容:

Database territory                                      = US
Database code page                                      = 1208
Database code set                                       = UTF-8
Database country/region code                            = 1
Database collating sequence                             = IDENTITY
Alternate collating sequence              (ALT_COLLATE) =

請注意,您無法在創建數據庫後更改這些設置。一種選擇是從數據庫中導出數據(使用db2export),使用所需的語言設置刪除並重建數據庫,然後重新導入數據(使用db2import)。

另一種選擇是查看是否有一種方法可以將您的字元串表示為純“位”數據並儲存位序列而不是“字元串”或聲明一個欄位VARCHAR FOR BIT DATA並將您的字元串儲存為位序列(儘管我不是 100% 肯定那個…)。

還請查看下面的連結,因為它們有更多關於語言的資訊以及如何處理多程式碼頁結果。請注意,其中一些資訊要求 DB2 至少為 9.5 或更高版本。

以及查看與該列錶鍊接相關的整個多元文化支持父/兄弟連結(不同程式碼頁之間的字元轉換)。

引用自:https://dba.stackexchange.com/questions/36686