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

stu*_*stu 5 db2 format zos

我是一个Unix黑客,所以每当我想运行一些SQL时,我就会运行一个脚本.我用我的查询调用DB2并将stdout转储到文件中.非常尼安德特人,但它的确有效.我有一个带varchar(28672)的表.该字段永远不会那么长,但db2将其格式化为28k宽.

显然,我更改了我的查询以选择substr(field,1,100)来获得字段的开头,这就是它返回的内容,只是前100个字符,但它仍然将输出的字段格式化为28672个字符.知道如何使其格式化为数据输出的大小?

bha*_*mby 6

CLP for DB2将始终根据列的长度返回其输出中字段所需的最大数量.

但是,您可以将字段转换为另一个大小VARCHAR:

SELECT CAST(your_field AS VARCHAR(100)) FROM your_table
Run Code Online (Sandbox Code Playgroud)

如果这样做,您可能希望禁止字符截断的警告,您可以使用CLP命令执行此操作UPDATE COMMAND OPTIONS:

UPDATE COMMAND OPTIONS USING w OFF
Run Code Online (Sandbox Code Playgroud)

  • 惊人的!奖励:使用`SELECT CAST(your_field AS VARCHAR(100)) as your_field FROM your_table`来保留列名。 (2认同)