首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为所有firebird子请求禁用"heading“

如何为所有firebird子请求禁用"heading“
EN

Stack Overflow用户
提问于 2019-05-28 21:22:28
回答 1查看 179关注 0票数 1

我有一个使用串联和嵌套select和list ()的firebird请求,然后将其写入文件。第一个命令被设置为关闭头部;

代码语言:javascript
复制
SET HEADING OFF;
SELECT DISTINCT '"' || REPLACE(TRIM(COALESCE(x.column, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(x.column2, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(list(DISTINCT x.column3, ','), '')), '"', '""')
|| '";'
FROM (
     SELECT ycolumn AS column, ycolumn1 AS column1, ycolumn2 AS column2, list(DISTINCT ycolumn3, ',') AS column3
FROM (
     SELECT d.column AS ycolumn, c.column1 AS ycolumn1, dc.column2 AS ycolumn2, ws.column3 AS ycolumn3
     FROM ...
     )y
     GROUP BY ycolumn, ycolumn1, ycolumn2
) x
GROUP BY x.column, x.column1, x.column3
;

问题是嵌套选择的标头没有被禁用,输出文件如下所示:

代码语言:javascript
复制
==============================================================================
            0:218
==============================================================================
CONCATENATION:
"field"; "field1"; "field2"; "field3";

是否可以禁用所有请求的报头?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-28 23:56:31

问题是LIST会生成一个BLOB SUB_TYPE TEXT,而isql默认为使用设置为1的配置BLOBDISPLAY (以显示BLOB SUB_TYPE TEXT)。使用此设置,ISQL将自动输出每行内嵌的所有文本blob,但为了区分哪个blob是哪个blob,它将在显示blob内容时包含列别名。

您可以使用SET BLOBDISPLAY OFF关闭blobdisplay,但是这样查询结果将只显示blob-id,而不显示blob内容,这可能不是您想要的。对于您的问题中的查询,它将仅显示:

代码语言:javascript
复制
            0:218

另一种方法是将查询转换为足够大的VARCHAR

代码语言:javascript
复制
SELECT DISTINCT cast('"' || REPLACE(TRIM(COALESCE(x.column, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(x.column2, '')), '"', '""')
|| '"; "' || REPLACE(TRIM(COALESCE(list(DISTINCT x.column3, ','), '')), '"', '""')
|| '";' as varchar(8191))
FROM ...

对于字符集UTF8,最大VARCHAR大小为8191,或者对于单字节字符集,最大大小为32765,但是对行长度有额外的限制(总共最大64KB )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56343270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档