如何在DB2 CLP(z/OS)中限制返回字段的显示长度?

9
我是一名Unix黑客,因此每当我想运行一些SQL时,都会运行一个脚本。我用我的查询调用DB2并将stdout转储到文件中。非常原始,但它能够工作。
我有一个包含varchar(28672)的表格。该字段从未那么长,但db2将其格式化为28k宽度。
显然,我更改了我的查询以选择substr(field,1,100)以仅获取字段的开头,并且返回的确实是前100个字符,但它仍然将输出格式化为28672个字符的字段。有没有办法使其格式化为数据输出的大小?
1个回答

11

针对DB2的CLP,基于列的长度其输出总是返回一个字段所需的最大值。

不过,您可以将字段强制转换为另一个大小的VARCHAR:

SELECT CAST(your_field AS VARCHAR(100)) FROM your_table

如果您这样做,您可能希望抑制字符截断的警告,您可以使用CLP命令UPDATE COMMAND OPTIONS来实现:

UPDATE COMMAND OPTIONS USING w OFF

你是个天才。谢谢。 - stu
2
厉害! 额外奖励:使用“SELECT CAST(your_field AS VARCHAR(100)) as your_field FROM your_table”以保留列名。 - lmsurprenant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接