DB2 問題中的荷蘭語字元
好的,首先,我對數據庫的了解非常有限。
接下來的問題是:我插入了幾行包含荷蘭語字元的數據,例如不同國家的名稱。一些國家/地區的名稱末尾有荷蘭語特殊字元 ë,或者像烏克蘭一樣在 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 或更高版本。
以及查看與該列錶鍊接相關的整個多元文化支持父/兄弟連結(不同程式碼頁之間的字元轉換)。