gpt4 book ai didi

java - SQL0332 CCSID-id 1156 和 278 之间的字符转换不可能

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:18 24 4
gpt4 key购买 nike

我在 Java 程序中嵌入了对 iseries 的 sql 查询,该查询引发以下错误 -

"[SQL0332] Character conversion between CCSID-id 1156 and 278 is not possible.".

我只用一个库而不是所有库都面临这个问题。

工作查询:

select * from SRBKTO where KOACNO=721

无效查询:

select * from SRBKTO where KOACNO= '721' (This works for other libraries)

如果我尝试使用带引号(String 或 int 类型)的条件子句进行查询,则会引发错误。

我对 iSeries 不太了解。我的理解是,字符 "' " (目前我猜仅针对该字符)从 CCSID 1156 到 278 存在转换问题。

我尝试了 jt400native jar 的 java API com.ibm.as400.access.AS400.setCcsid(1156) 将源 CCSID 设置为连接对象,但没有产生任何结果。是否需要更改 objective-c CSID?谁能建议一种方法来解决这个问题?

最佳答案

如果您使用 DSPFFD 显示 KOACNO 字段描述,您会发现代码页/字符集为 1156 (Baltic)。您可以使用 CAST 将查询中的字段转换为您的目标字符集。

从可用的库中检查正确的 CCSID 是什么。下面的转换示例(假设正确的是 1146):

select * from SRBKTO where CAST(KOACNO AS CHAR(20) CCSID 1146) = '721'

关于java - SQL0332 CCSID-id 1156 和 278 之间的字符转换不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32865013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com