Проблема в том, что LIST
создает BLOB SUB_TYPE TEXT
, а ISQL по умолчанию использует конфигурацию BLOBDISPLAY
, установленную на 1
(для отображения BLOB SUB_TYPE TEXT
).С этим параметром ISQL будет автоматически выводить все текстовые BLOB-объекты в строке для каждой строки, но чтобы определить, какой BLOB-объект является каким-либо, он будет включать псевдоним столбца при отображении содержимого BLOB-объекта.
Вы можете отключить отображение blobdisplay с помощью SET BLOBDISPLAY OFF
, но тогда в результате вашего запроса будет отображаться только идентификатор blob-идентификатора, а не его содержимое, что, вероятно, не то, что вам нужно.Для запроса в вашем вопросе будет отображаться только:
0:218
Альтернативой является приведение запроса к VARCHAR
достаточного размера:
SELECT DISTINCT cast('"' || REPLACE(TRIM(COALESCE(x.column, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(x.column2, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(list(DISTINCT x.column3, ','), '')), '"', '""')
|| '";' as varchar(8191))
FROM ...
Макс. VARCHAR
размера.равно 8191 для набора символов UTF8 или 32765 для однобайтового набора символов, но существуют дополнительные ограничения на длину строки (максимум 64 КБ).