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 数据库中。