DB2 Warehouse on Cloud 中特殊字符的长度
Length of special characters in DB2 Warehouse on Cloud
我有一个 python 脚本可以将数据加载到 DB2 WOC 中的 table。有一个类型为 CHAR(50) 的列,我想将以下数据字符串加载到此 table:
string = "RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL"
如您所见,有 2 个特殊字符:Ý
和 ¨
我查看了python中字符串变量的长度,是50。
然而,当我想将这个字符串加载到 WOC 中的 table 时,它抛出了一个太长的错误:
SELECT length('RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL'),
length('Ý'),
length('¨')
FROM test.STG_TEST_20220531142326
这给出了结果:
52 | 2 | 2
这意味着这些字符在 DB2 WOC 中占据 2 个位置。有人可以解释原因吗,是否可以避免这种情况?
您必须将列声明为 (VAR)CHAR(52)
或 (VAR)CHAR(50 CODEUNITS32)
才能将字符串存储在 UTF-8 数据库中。
我有一个 python 脚本可以将数据加载到 DB2 WOC 中的 table。有一个类型为 CHAR(50) 的列,我想将以下数据字符串加载到此 table:
string = "RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL"
如您所见,有 2 个特殊字符:Ý
和 ¨
我查看了python中字符串变量的长度,是50。
然而,当我想将这个字符串加载到 WOC 中的 table 时,它抛出了一个太长的错误:
SELECT length('RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL'),
length('Ý'),
length('¨')
FROM test.STG_TEST_20220531142326
这给出了结果:
52 | 2 | 2
这意味着这些字符在 DB2 WOC 中占据 2 个位置。有人可以解释原因吗,是否可以避免这种情况?
您必须将列声明为 (VAR)CHAR(52)
或 (VAR)CHAR(50 CODEUNITS32)
才能将字符串存储在 UTF-8 数据库中。