DB2将部分Blob强制转换为varchar

时间:2018-11-09 11:05:02

标签: sql casting db2 blob varchar

我有一个 db2 表,该表带有 blob 列,其中包含压缩的xml数据。现在,我想从xml的开头获取大约20个字符。我尝试将 blob 投射到 varchar ,只要可以将整个Blob强制转换为varchar,它就可以正常工作。如果它太长,那么我将收到一个错误,并且sql请求因以下错误而中断: SQL错误[22001]:值“ ...”太长。SQLCODE = -433,SQLSTATE = 22001,DRIVER = 4.14.88

是否有机会仅广播斑点的第一部分?

我想要实现的是从xml获取ID,然后可以将其用作另一个sql请求的一部分。

到目前为止,我的SQL:

SELECT SUBSTRING(CAST(DATA AS VARCHAR(17)),10,8,OCTETS)
FROM table
WHERE TRANSACTION_ID = '123';

谢谢!

1 个答案:

答案 0 :(得分:0)

正如dnoeth在他的评论中所说,答案只是在投射Blob之前先对其进行替换。
因此,sql看起来像这样:
SELECT CAST(SUBSTR(DATA,10,8) AS VARCHAR(8)) FROM table WHERE TRANSACTION_ID = '123';

相关问题