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

如何限制DB2CLP(z/OS)中返回的字段的显示长度?,db2,format,zos,Db2,Format,Zos,我是个Unix黑客,所以我有一个脚本,每当我想运行一些SQL时,我都会运行它。我使用查询调用DB2,并将标准输出转储到一个文件中。很像尼安德特人,但很管用。 我有一张桌子,里面有一个varchar(28672)。字段从来没有那么长,但db2将其格式化为28k宽 很明显,我将查询改为选择substr(field,1100),以获取字段的开头,这就是它返回的内容,仅返回前100个字符,但它仍然将输出的字段格式化为28672个字符。知道如何将其格式化为数据输出的大小吗?CLP for DB2将始终根据

我是个Unix黑客,所以我有一个脚本,每当我想运行一些SQL时,我都会运行它。我使用查询调用DB2,并将标准输出转储到一个文件中。很像尼安德特人,但很管用。 我有一张桌子,里面有一个varchar(28672)。字段从来没有那么长,但db2将其格式化为28k宽


很明显,我将查询改为选择substr(field,1100),以获取字段的开头,这就是它返回的内容,仅返回前100个字符,但它仍然将输出的字段格式化为28672个字符。知道如何将其格式化为数据输出的大小吗?

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

但是,您可以将字段强制转换为其他大小的VARCHAR:

SELECT CAST(your_field AS VARCHAR(100)) FROM your_table
如果执行此操作,您可能希望抑制字符截断警告,可以使用CLP命令执行此操作:


你真是个天才。谢谢,太棒了!好处:使用
选择CAST(您的\u字段为VARCHAR(100))作为\u表中的\u字段来保留列名。
UPDATE COMMAND OPTIONS USING w OFF