首页 > 解决方案 > 有没有办法减少 DB2 中两个列标题之间的差距

问题描述

我正在研究 IBM I 系列 VR7,并使用 CLLE 运行 SQL(DB2)。

我在 TXT 文件中有一个 SQL 过程,具有在 QTEMP 中创建表的以下命令。

create table qtemp.FILE1 as (                                                  
select                                                                          
Field1,Field2,Field3,.....Field10 from FILE2 ) with data; 

我使用以下命令从 CLLE 调用上述过程。

RUNSQLSTM  SRCFILE(MyLib/MySrc) SRCMBR(Proc_txt) COMMIT(*NONE)

然后运行下面的命令来生成假脱机。

RUNQRY     QRYFILE((FILE1)) OUTTYPE(*PRINTER) OUTFORM(*DETAIL) FORMSIZE(60 132) 
           FORMTYPE(*STD) COPIES(1) LINESPACE(1)  

我面临的问题是,在使用该命令创建表时,列之间出现了2 个空格。create table当使用上述命令将该表转换为假脱机文件RUNQRY时,右侧的字段会被截断,因为我的报告宽度默认为132,我无法更改它。如果创建的表中的空格可以减少到1,我的问题将得到解决。我SQL正在使用 IBM i 系列的默认值并DB2作为数据库。我对他们的版本不太了解。

Edit2:我遇到的另一个问题是报告在第二行有一个字段。实际上,根据要求,一个字段必须位于另一个字段下的第二行。例如我需要field5下的field10。我也修复了它,请阅读下面的答案。希望它可以帮助有需要的人,但我真的很怀疑。

Edit1:我已按要求更新了问题。任何帮助将非常感激。谢谢。

标签: sqldb2ibm-midrangerpgle

解决方案


简短的回答是,是的,您可以将报表定义为在列之间有 1 个空格,但您必须定义 Query400 对象才能做到这一点。不幸的是,这不是为 Query400 编写教程的好地方。我可以让你开始。

输入 wrkqry,按回车键。

然后将光标放在查询名称字段上,然后按 F4。您现在在工具中。您需要创建一个新查询,并在此工具中定义有关它的所有内容。玩弄它,看看它是否对你有帮助。


推荐阅读