有没有一种方法可以减少DB2中两个列标题之间的间隙

时间:2020-03-27 18:16:10

标签: sql db2 ibm-midrange rpgle

我正在研究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)  

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

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

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

2 个答案:

答案 0 :(得分:1)

简短的答案是,可以将报表定义为在列之间留1个空格,但是您必须定义Query400对象才能这样做。不幸的是,这不是编写Query400教程的好地方。不过,我可以帮助您开始。

输入wrkqry,然后按Enter。

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

答案 1 :(得分:0)

我能够得到所需的东西。正如其他人所建议的,我终于使用WRKQRY来控制列间距。将列间距减小到1,并能够以132的宽度获得所需的列。

我遇到的另一个问题是报告第二行有一个字段。实际上,根据要求,一个字段必须位于另一字段的第二行中。例如,我需要在field5下使用field10。所以我所做的是,我使用了WRKQRY中提供的换行功能。

我如何做: 创建一个WRKQRY对象并选择所需的文件。

  1. 在第二行中将我需要的字段排在最下面。
  2. 转到Select Output Type and Output Form并在“换行”字段中输入Y。放在 包装宽度等于您的报告宽度。保留其他必填字段。
  3. 这样,每条记录(如果有数据)将在下一行具有第10个字段。您可以添加为 许多字段。
  4. 您可能必须在字段中添加一些空格才能正确对齐。我会 建议创建一个新字段并使用WRKQRY中可用的concat(||)运算符。

感谢大家的帮助。