关于从SQL Server到的数据复制,DB2我有以下问题:
SQL Server
DB2
上,DB2我有一张表格,其中包含(为简单起见)两列:COL1和COL2。
COL1
COL2
COL1被定义为CHAR(20)。COL2定义为CHAR(10)。
CHAR(20)
CHAR(10)
COL1通过将字符串转换为十六进制数,例如,从SQL被复制"abcdefghij"到"6162636465666768696A"或"1111111111"以"31313131313131313131"通过使用以下SQL查询:
"abcdefghij"
"6162636465666768696A"
"1111111111"
"31313131313131313131"
CONVERT(char(20), cast(@InputString as binary) 2)
@InputString会在哪儿"abedefghij"。
@InputString
"abedefghij"
换句话说,COL1包含十六进制值,但为字符串(抱歉,如果措词不正确)。
我需要将十六进制值转换回字符串并将此值放入COL2。
SQL查询应该DB2执行什么转换?我知道该怎么做SQL Server,但不知道如何做DB2。
注意:十六进制值不带有前缀的原因"0x"是因为在该CONVERT语句中使用了样式2 。
"0x"
CONVERT
select hex('A') from sysibm.sysdummy1;
返回41。
select x'41' from sysibm.sysdummy1;
给你’A’。因此,您可以将其放在一个for循环中,并在每对十六进制字符之间循环,以到达原始字符串。或者,您可以编写自己的unhex函数。
for
取自 ~~dbforums.com /db2/1627076-display-hex-columns.html~~ (编辑2020年11月:原始源链接现在是垃圾邮件站点)