对文件进行排序和合并
关于此任务
您可以使用 SORT 或 MERGE 语句按特定顺序排列记录。 您可以在同一个 COBOL 程序中混合使用 SORT 和 MERGE 语句。
SORT语句- 接受不在序列中的输入 (来自文件或内部过程) ,并按请求的序列生成输出 (到文件或内部过程)。 您可以在记录排序之前或之后添加,删除或更改记录。
MERGE语句- 比较两个或更多已排序文件中的记录,并按顺序组合这些记录。 您可以在合并记录后添加,删除或更改记录。
程序可以包含任意数目的排序和合并操作。 它们可以是多次执行的相同操作,也可以是不同的操作。 但是,一个操作必须在另一个操作开始之前完成。
使用时 Enterprise COBOL ,您的 IBM® 许可程序用于排序和合并必须是DFSORT或同等产品。 如果提到 DFSORT ,那么可以使用任何等效的排序或合并产品。
COBOL 包含 SORT 或 MERGE 语句的程序可以位于 16 MB 线之上或之下。
您执行的排序或合并步骤通常如下所示:
过程
- 描述要用于排序或合并的排序或合并文件。
- 描述要排序或合并的输入。 如果要在对记录进行排序之前对其进行处理,请对输入过程进行编码。
- 描述排序或合并的输出。 如果要在对记录进行排序或合并后处理这些记录,请对输出过程进行编码。
- 请求排序或合并。
- 确定排序或合并操作是否成功。
结果
限制:
- 在 环境下,您无法运行包含
SORT或MERGE语句的 COBOLz/OS UNIX 程序。 此限制包括 BPXBATCH。 - 不能在使用
THREAD选项编译的程序中使用SORT或MERGE语句。 这包括使用面向对象语法和多线程应用程序的程序,这两类程序都需要THREAD该选项。此外,使用`ifSORT`或MERGE`else`语句的 COBOL 程序不能直接或间接调用其他需要 z/OS Unix系统服务或使用多线程的应用程序。 例如,JVM 会同时使用这两种语言。 - 您不能使用 "
DFSORT传统技术。 常规技术用于以下情况:- 指定了
NOBLKSET选项。BLKSET是调用DFSORT时的缺省值。 - 磁带设备用于中间工作存储器。
- L5 在
DFSORT OPTION控制的RECORD语句中使用。 L5 指定平均记录长度。 可以使用AVGRLEN=n语句来指定相同的值,而不是使用 L5。
为协助迁移旧版 COBOL 程序,针对在AMODE 31环境中运行的程序,现提供容忍运行时APARs: PH20569(z/OS ( 2.2 )和 PH21261(z/OS ( 2.3/2.4 )。 AMODE 64 没有容错。 有关详细信息,请参阅《 使用 DFSORT 选项 NOBLKSET 》( Enterprise COBOL 迁移指南 )。
- 指定了
相关任务
排序表
描述排序或合并文件
描述排序或合并的输入
描述排序或合并的结果
请求排序或合并
确定排序或合并是否成功
提前停止排序或合并操作
使用FASTSRT提高排序性能
控制排序行为
DFSORT 应用程序编程指南
排序表
描述排序或合并文件
描述排序或合并的输入
描述排序或合并的结果
请求排序或合并
确定排序或合并是否成功
提前停止排序或合并操作
使用FASTSRT提高排序性能
控制排序行为
DFSORT 应用程序编程指南
相关参考资料
CICS SORT 应用程序限制
排序语句 (Enterprise COBOL for z/OS 语言参考)
MERGE语句 (Enterprise COBOL for z/OS 语言参考)
CICS SORT 应用程序限制
排序语句 (Enterprise COBOL for z/OS 语言参考)
MERGE语句 (Enterprise COBOL for z/OS 语言参考)