【发布时间】:2011-10-27 08:17:36
【问题描述】:
关于从SQL Server 到DB2 的数据复制,我有以下问题:
在DB2 上,我有一个包含(为简单起见)两列的表:COL1 和COL2。
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。
【问题讨论】:
-
解决了我的问题,有点。结果表明,在 SQL Server 上定义为 BINARY 的列将被正确复制到 DB2 上为 BIT 定义为 VARCHAR 的列。还是想知道上面的答案,如果有人知道的话。