有没有办法减少 DB2 中两个列标题之间的差距
Is there a way to reduce gap between two column headings in DB2
我正在研究 IBM I 系列 VR7,并且 运行 SQL(DB2) 使用 CLLE。
我在 TXT 文件中有一个 SQL 过程,使用以下命令在 QTEMP 中创建一个 table。
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
命令创建 table 时,列之间出现 2 空格。当使用上面的 RUNQRY
命令将 table 转换为假脱机文件时,右侧的字段会被截断,因为我的报告宽度默认为 132,我可以不改变它。
如果创建的table中的空格可以减少到1,我的问题就解决了。
SQL
我正在使用 IBM i 系列的默认值和 DB2
作为数据库。我不太了解他们的版本。
Edit2:我遇到的另一个问题是报告在第二行有一个字段。实际上,根据要求,一个字段必须位于另一个字段下的第二行。例如,我需要 field5 下的 field10。我也修复了它,请阅读下面的答案。
希望对有需要的人有所帮助,但我真的很怀疑。
Edit1:我已按要求更新了问题。任何帮助将非常感激。谢谢。
简短的回答是,是的,您可以将报告定义为在列之间有 1 space,但您必须定义 Query400 对象才能做到这一点。不幸的是,这不是编写 Query400 教程的好地方。不过我可以帮你入门。
键入 wrkqry,按回车键。
然后将光标放在查询名称字段上,然后按 F4。您现在位于工具中。您需要创建一个新查询,并在此工具中定义有关它的所有内容。试一试,看看是否对您有帮助。
我能够得到我需要的东西。正如其他人所建议的那样,我终于使用 WRKQRY 来控制列间距。将列间距减小到 1,并且能够获得 132 宽度所需的列。
我遇到的另一个问题是报告在第二行有一个字段。实际上,根据要求,一个字段必须位于另一个字段下的第二行。例如,我需要 field5 下的 field10。所以我所做的是,我使用了 WRKQRY 中可用的换行功能。
我是怎么做的:
创建一个 WRKQRY 对象和 select 所需的文件。
- 在第二行中将我需要的字段排序到底部。
- 转到
Select Output Type and Output Form
并在换行字段上选择 Y。放在
包装宽度等于您的报告宽度。根据需要保留其他字段。
- 这样,如果每条记录有数据,它的下一行就会有第 10 个字段。您可以添加为
很多字段。
- 为了正确对齐,您可能需要在字段中添加一些空格。我会
建议创建一个新字段并使用 WRKQRY 中可用的 concat(||) 运算符。
感谢大家的帮助。
我正在研究 IBM I 系列 VR7,并且 运行 SQL(DB2) 使用 CLLE。
我在 TXT 文件中有一个 SQL 过程,使用以下命令在 QTEMP 中创建一个 table。
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
命令创建 table 时,列之间出现 2 空格。当使用上面的 RUNQRY
命令将 table 转换为假脱机文件时,右侧的字段会被截断,因为我的报告宽度默认为 132,我可以不改变它。
如果创建的table中的空格可以减少到1,我的问题就解决了。
SQL
我正在使用 IBM i 系列的默认值和 DB2
作为数据库。我不太了解他们的版本。
Edit2:我遇到的另一个问题是报告在第二行有一个字段。实际上,根据要求,一个字段必须位于另一个字段下的第二行。例如,我需要 field5 下的 field10。我也修复了它,请阅读下面的答案。 希望对有需要的人有所帮助,但我真的很怀疑。
Edit1:我已按要求更新了问题。任何帮助将非常感激。谢谢。
简短的回答是,是的,您可以将报告定义为在列之间有 1 space,但您必须定义 Query400 对象才能做到这一点。不幸的是,这不是编写 Query400 教程的好地方。不过我可以帮你入门。
键入 wrkqry,按回车键。
然后将光标放在查询名称字段上,然后按 F4。您现在位于工具中。您需要创建一个新查询,并在此工具中定义有关它的所有内容。试一试,看看是否对您有帮助。
我能够得到我需要的东西。正如其他人所建议的那样,我终于使用 WRKQRY 来控制列间距。将列间距减小到 1,并且能够获得 132 宽度所需的列。
我遇到的另一个问题是报告在第二行有一个字段。实际上,根据要求,一个字段必须位于另一个字段下的第二行。例如,我需要 field5 下的 field10。所以我所做的是,我使用了 WRKQRY 中可用的换行功能。
我是怎么做的: 创建一个 WRKQRY 对象和 select 所需的文件。
- 在第二行中将我需要的字段排序到底部。
- 转到
Select Output Type and Output Form
并在换行字段上选择 Y。放在 包装宽度等于您的报告宽度。根据需要保留其他字段。 - 这样,如果每条记录有数据,它的下一行就会有第 10 个字段。您可以添加为 很多字段。
- 为了正确对齐,您可能需要在字段中添加一些空格。我会 建议创建一个新字段并使用 WRKQRY 中可用的 concat(||) 运算符。
感谢大家的帮助。