首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与RazorSQL连接到DB2服务器时的不同结果

与RazorSQL连接到DB2服务器时的不同结果
EN

Stack Overflow用户
提问于 2019-08-06 17:04:09
回答 2查看 98关注 0票数 0

我在中获得了以下结果

代码语言:javascript
复制
 ItemNumber                       Description                                                    Price
 0xf3f5f4f2f4f8404040404040404040 0xc8c1d9d5c5e2e260e2d7d940c3e3d9d360e2c1c360d7d3c360d5c5e3c140 4841.000

当我在RazorSQL中运行相同的查询时,会得到以下结果:

代码语言:javascript
复制
ItemNumber         Description                       Price
354248             HARNESS-SPR CTRL-SAC-PLC-NETA     4841.000

如何使提供与RazorSQL相同的结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-07 13:31:15

问题不在于数据在EBCDIC中.

真正的问题是字段被标记为CCSID 65535 (二进制),而不是CCSID 37。

CCSID 65535告诉系统不要转换数据。

显然,RazorSQL被配置为自动转换65535数据。我没有安装,但是用于连接到IBM的IBM的“”组件在JDBC配置中有如下内容:

此设置显示JDBC驱动程序的下列属性

“正确”的答案是正确地使用实际的CCSID标记数据。

票数 1
EN

Stack Overflow用户

发布于 2019-08-06 17:12:50

我发现我需要对Data中的非十进制字段使用强制转换,因为表是EBCDIC。因此,有效的查询是;

代码语言:javascript
复制
SELECT CAST(AMFLIB7.ITMRVA.ITNBR as CHAR(16) ccsid 37) AS "ItemNumber", CAST(AMFLIB7.ITMRVA.ITDSC as CHAR(64) ccsid 37) AS "Description", AMFLIB7.ITRBPR.BZANVA As "Price" 
FROM AMFLIB7.ITMRVA
INNER JOIN AMFLIB7.ITRBPR ON AMFLIB7.ITRBPR.ITNBR = AMFLIB7.ITMRVA.ITNBR
WHERE AMFLIB7.ITMRVA.ITNBR = '354248'
ORDER BY AMFLIB7.ITRBPR.BZBLDT DESC
FETCH FIRST 1 ROWS ONLY

更新:使用查尔斯的答案,我添加了“转换binary=true”到我的连接字符串,不再需要在我的查询上使用强制转换!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57380914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档