一尘不染

在DB2上将HEX值转换为CHAR

sql

关于从SQL Server到的数据复制,DB2我有以下问题:

上,DB2我有一张表格,其中包含(为简单起见)两列:COL1COL2

COL1被定义为CHAR(20)COL2定义为CHAR(10)

COL1通过将字符串转换为十六进制数,例如,从SQL被复制"abcdefghij""6162636465666768696A""1111111111""31313131313131313131"通过使用以下SQL查询:

CONVERT(char(20), cast(@InputString as binary) 2)

@InputString会在哪儿"abedefghij"

换句话说,COL1包含十六进制值,但为字符串(抱歉,如果措词不正确)。

我需要将十六进制值转换回字符串并将此值放入COL2

SQL查询应该DB2执行什么转换?我知道该怎么做SQL Server,但不知道如何做DB2

注意:十六进制值不带有前缀的原因"0x"是因为在该CONVERT语句中使用了样式2 。


阅读 203

收藏
2021-03-10

共1个答案

一尘不染

select hex('A') from sysibm.sysdummy1;

返回41。

select x'41' from sysibm.sysdummy1;

给你’A’。因此,您可以将其放在一个for循环中,并在每对十六进制字符之间循环,以到达原始字符串。或者,您可以编写自己的unhex函数。

取自 ~~dbforums.com /db2/1627076-display-hex-columns.html~~
(编辑2020年11月:原始源链接现在是垃圾邮件站点)

2021-03-10