使用 sort 实用程序的 outfil 可以生成多少个输出文件?

Posted

技术标签:

【中文标题】使用 sort 实用程序的 outfil 可以生成多少个输出文件?【英文标题】:How many output file can be generated using outfil of sort utility? 【发布时间】:2015-01-28 19:27:54 【问题描述】:

在一个简单的 JCL 脚本中,我尝试使用 SORT 根据某些条件生成一些类似的数据集。这样一个JCL可以生成多少个输出文件?

【问题讨论】:

很多。请展示您拥有的东西,更清楚地描述您想要做什么,说明您拥有的 SORT 产品(DFSORT 或 SyncSORT)并去掉 COBOL 标签。 答案有缺陷? 【参考方案1】:

对于任何想要尝试的人,这里有一个 DFSORT 步骤,它将生成 1629 个 DD 语句 (SYSOUT=*) 和 1629 个 OUTFIL 语句。

运行步骤。

执行一个只有 OPTION COPY 的 SORT 步骤,并使用 ISPF 编辑器,将数据集从 SYSOUTS 复制到 JCL 部分,并在 OPTION COPY 之后从 OUTFILS 复制数据集。

提交您的工作。如果它以 n 个 IEF649I EXCESSIVE NUMBER OF DD STATEMENTS 失败,则删除最后 n 个 DD 语句和最后 n 个 OUTFIL 语句。如果可行,您可以尝试更多数量的 DD 语句(更改两个 1629),尤其是当您的 TIOT 大小大于 32K 时。使用 64K TIOT,您可能会得到这个数字的两倍多一点。

如果需要一些时间(不会太长),请不要感到惊讶,因为它正在打开、写入记录并关闭所有这些文件。

//LOTSOFOF EXEC PGM=SORT 
//SYSOUT   DD SYSOUT=* 
//OUTFILS DD DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,2),
// DSN=your dataset name number 1 here 
//SYSOUTS DD DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,2),
// DSN=your dataset name number 2 here 
//SYSIN    DD * 
  OPTION COPY 

  OUTFIL REPEAT=1629, 
         FNAMES=OUTFILS, 
         BUILD=(C' OUTFIL FNAMES=F', 
                SEQNUM,4,ZD, 
                80X) 
  OUTFIL REPEAT=1629, 
         FNAMES=SYSOUTS, 
         BUILD=(C'//F', 
                SEQNUM,4,ZD, 
                C' DD SYSOUT=*', 
                80X) 
//SORTIN   DD * 
ONE LINE NEEDED, CONTENT NOT IMPORTANT 

有一个 XTIOT(扩展 TIOT),但它不适用于 QSAM,它有专门的用途,如 DB2。


嗯,反正答案已经知道了。

您可以拥有的 OUTFIL 语句的数量实际上有两个限制。

首先是您的站点在单个作业步骤中允许多少个 DD 名称。询问您的前辈或 Sysprog TIOT 有多大。如果是 32K,您将有大约 1,600 个可用。如果是 64K,则两倍。

第二个限制是您在步骤中拥有的 SORT 控制卡的数量及其复杂性。你仍然可以得到很多。

无论哪种方式,我怀疑您的任务很容易拥有足够多的 OUTFIL 语句。

你想要几个?

对于怀疑者,试试这个链接:https://groups.google.com/forum/#!msg/bit.listserv.ibm-main/km3VNDp0SQQ/Zmh161dcSKcJ

Kolusu 的相关引用是:

DFSORT was able to handle writing up to 999 members into a PDSE
simultaneously.   Beyond that I get  IEF649I EXCESSIVE NUMBER OF DD
STATEMENTS 

表明 DFSORT 在这种情况下仍然很满意,而 z/OS 则不然。 Kolusu 是 DFSORT 的开发者。

如果有更多的否认,我可以找到更多的引述,包括来自现代 DFSORT 的发明家、设计师和开发者的 Frank Yaeger 的很多很多年(现已退休)。

【讨论】:

但是我的一位学长告诉我现在是 32 @DUSMANTA 但是你在这里问是为了得到一个好的答案,而不是表明你的一位前辈不知道他们在这个问题上在谈论什么。有些人在被问到他们不知道的时候会给你垃圾,这样他们就“看起来不错”。直到被抓。您不必相信我,答案无论如何可能对其他人有所帮助。你也没有说你想要多少。我猜超过 32...? @DUSMANTA 进一步更新。你可以在工作中试试这个。我很想知道你的前辈是怎么想的,但把它展示给他们可能并不外交:-)

以上是关于使用 sort 实用程序的 outfil 可以生成多少个输出文件?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 存储过程中的select into outfile语句生成的文件放哪里

显示数据库/表 INTO OUTFILE

“ INTO OUTFILE ”语句未完成而终止,锁定文件

我可以使用变量在mysql中指定OUTFILE吗

如何在 Easytrieve 内部 SORT 中加入记录?

MySQL select into outfile /tmp 没有输出