【发布时间】:2015-01-24 13:33:06
【问题描述】:
我有一个定义为 Unicode 表的 DB2 表 它包含一个定义为 Char (35) 的字段。现在我有一个长度为 35 但包含德语变音符号的参数,因此它需要超过 35 个字节。 如果我尝试执行插入或更新语句,我会得到一个 SQLCODE -302。 如果我从参数变量中删除一个字符,它将起作用并且读取表格也将正确返回德语变音符号。 我使用带有 DB2 驱动程序 3.64.82 的 SQuirreL 进行了尝试,它不是参数而是字符串常量,它返回了一个 SQLCode -404,它是字符串常量的 -302 的挂件。 这是我尝试在 SQirreL SQL Client 3.4.0 中执行的 sql 语句:
INSERT INTO LEA0001.VP_105 (Anlage_Zeitpunkt, Anlage_User, Aender_Zeitpunkt,
Aender_User, V_Nr, lief_id_ref_nr, gueltig_bis_zp, gueltig_ab_zp,
erstprod_termin,druckfreig_termin, ANF_SDB, IST_ERSTPROD_KW, pr_name, pr_strasse,
pr_plz, pr_ort, pr_land) values (current timestamp, 'HUGO', current timestamp, '',
48854, 2769, '9999-12-31 23:59:59.999999', '2014-11-25 15:40:36.395542',
'0001-01-01', '0001-01-01', 'N', 'N', 'Getränkeggggggggggggggggggggggggggg', '', '', '', '')
我想知道这是否是 DB2 驱动程序中的错误,或者是否有驱动程序的设置或配置可以使其工作。 对我来说似乎是正确的现在驱动程序将字节数与字段的指定长度进行比较,然后抛出该错误,因为 36 > 35。但很明显,对于 Unicode 表,这不可能是正确的。
版本信息:在 SQuirreL 中,我使用 IBM DB2 Net Driver 和 db2jcc Driver Version 3.64.82 DB 是 Z/OS DB2 V10 Rel 1015
【问题讨论】:
标签: jdbc unicode db2 squirrel-sql