Db2
在 DB2 Linux 中遷移的特殊字元計為 2 個字元的數據
我們目前正在將數據從 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() 時,N
在string units
.
OCTETS
表示字節,CODEUNITS32
表示字元。在您的情況下
N
可能是 OCTETS,並且由於Ñ
字元需要 2 個字節(OCTETS),因此 UTF-8 數據庫中的整個字元串長度為 7。