Db2

在 DB2 Linux 中遷移的特殊字元計為 2 個字元的數據

  • March 5, 2019

我們目前正在將數據從 DB2 10.1 AIX 遷移到 DB2 11.1 Linux。由於我們使用了一些特性,例如版本控制/歷史表和行更改時間戳,所以 db2move 不是某些表的選項。因此,我們對一些表進行手動導出和載入。

具有特殊字元(例如“Ñ”)的數據會出現問題。

樣本數據

皮納塔

AIX DB2 10.1 將此長度計為 6 個字元,它非常適合 VARCHAR(6) 列。但是當我將它載入到 DB2 Linux 11.1 時,這被計為 7 個字元,因此數據被截斷。

我嘗試將其轉換為 VARCHAR(6) 但數據仍被截斷。我希望有人能給我指出一個可能的解決方案。

每個字元在單字節數據庫中需要 1 個字節,但在 UTF-8 數據庫中可能需要 1 到 4 個字節。

當您N為列指定 VARCHAR() 時,Nstring units.

OCTETS表示字節,CODEUNITS32表示字元。

在您的情況下N可能是 OCTETS,並且由於Ñ字元需要 2 個字節(OCTETS),因此 UTF-8 數據庫中的整個字元串長度為 7。

字元串

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