DB2 придает частичный блоб varchar - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть таблица db2 со столбцом blob , который содержит сжатые данные xml . Теперь я хотел бы получить примерно 20 символов с начала xml. Я попытался привести BLOB к a varchar , что прекрасно работает, пока весь BLOB-объект может быть разыгран в varchar. Если это слишком долго , тогда я получу ошибку, и запрос sql прерывается со следующей ошибкой: Ошибка SQL [22001]: значение "..." слишком длинное .. SQLCODE = - 433, SQLSTATE = 22001, ДРАЙВЕР = 4,14,88

Есть ли шанс разыграть только первую часть BLOB-объекта?

Чего я хотел бы добиться, так это получить идентификатор из xml, который затем можно использовать как часть другого SQL-запроса.

Мой sql:

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

Спасибо!

1 Ответ

0 голосов
/ 09 ноября 2018

Как сказал dnoeth в своем комментарии, ответ заключается в том, чтобы просто отбросить сам BLOB-объект перед его использованием.
Так что sql выглядит так:
SELECT CAST(SUBSTR(DATA,10,8) AS VARCHAR(8)) FROM table WHERE TRANSACTION_ID = '123';

...