gpt4 book ai didi

java - 如何在不使用 CAST 函数的情况下在连接级别以正确的格式 (CCSID 37) 转换 IBM DB2 十六进制数据

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:30 27 4
gpt4 key购买 nike

在我的应用程序中,我将 IBM DB2 数据库用作存储,并且我的数据服务层已使用 Node.js 实现。我已经使用 db2.jar 通过 Progress 给出的 DataDirect 方法建立了与 IBM DB2 iSeries 数据库的 JDBC 连接。当我执行任何选择查询时,从数据库返回的结果是一个十六进制值,这不是我想要的。为了解决这个问题,我可以选择在查询级别对每一列使用 CAST 函数,但这效率不高,因为我必须在每一列中应用这个 CAST,所以我试图在连接级别有一个通用的解决方案,这样我不必像 JTOpen 中的“translate binary =true”一样在每一列中应用此转换。

下面是选择查询的结果-

Without CAST function :
Query = SELECT poMast.ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO = 'P544901'
Result in Hex format = D7F5F4F4F9F0F1


With CAST function :
Query = SELECT CAST(poMast.ORDNO CHAR(7) CCSID 37) AS ORDNO from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO IS NOT NULL
Result in proper format = P544901

Connection URL = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbname;"

我们将不胜感激。

最佳答案

可能会尝试像这样修改您的连接字符串

Connection URL = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbname;translate binary=true;ccsid=37"

或者像这样

Connection URL = "jdbc:db2://hostname:port;DatabaseName=dbname;translate binary=true;ccsid=37"

关于java - 如何在不使用 CAST 函数的情况下在连接级别以正确的格式 (CCSID 37) 转换 IBM DB2 十六进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40780326/

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