我有一个python脚本,用于将数据加载到DB2 WOC中的一个表中。有一个类型为CHAR(50)的列,我想将以下数据字符串加载到该表中:
string = "RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL"
如您所见,有2个特殊字符:Ý
和¨
我在python中检查了字符串变量的长度,它是50。
然而,当我想将此字符串加载到WOC中的表时,它抛出了一个错误,即它太长了:
SELECT length('RECOMBINANT ANTI-ERBB 2 ANTIBODY ÝEPR19547-12¨ AL'),
length('Ý'),
length('¨')
FROM test.STG_TEST_20220531142326
这给出了以下结果:
52 | 2 | 2
这意味着这些字符在DB2WOC中占据了两个位置。有人能解释一下为什么吗?有没有可能避免这种情况?
1条答案
按热度按时间flvlnr441#
您必须将列声明为
(VAR)CHAR(52)
或(VAR)CHAR(50 CODEUNITS32)
,才能将字符串存储在UTF-8数据库中。