请求排序或合并

要在不进行初步处理的情况下从输入文件 ( MERGE的文件) 中读取记录,请使用 SORT . . . USINGMERGE . . . USING 以及在 SELECT 子句中声明的输入文件 (文件) 的名称。

关于此任务

要将排序或合并的记录从排序或合并程序传输到另一个文件而不进行任何进一步处理,请使用 SORT . . . GIVINGMERGE . . . GIVING 以及您在 SELECT 子句中声明的输出文件的名称。 例如:


SORT Sort-Work-1
    ON ASCENDING KEY Sort-Key-1
    USING Input-File
    GIVING Output-File.

对于 SORT . . . USINGMERGE . . . USING,编译器将生成一个输入过程来打开文件 (文件) ,读取记录,将记录释放到排序或合并程序,然后关闭文件 (文件)。 当 SORTMERGE 语句开始执行时,不能打开文件。 对于 SORT . . . GIVINGMERGE . . . GIVING,编译器将生成一个输出过程以打开文件,返回记录,写入记录并关闭文件。 当 SORTMERGE 语句开始执行时,不能打开该文件。

示例:描述SORT的排序和输入文件

如果要在排序前对排序记录执行输入过程,请使用 SORT . . . INPUT PROCEDURE。 如果希望对已排序的记录执行输出过程,请使用 SORT . . . OUTPUT PROCEDURE。 例如:


SORT Sort-Work-1
    ON ASCENDING KEY Sort-Key-1
    INPUT PROCEDURE EditInputRecords
    OUTPUT PROCEDURE FormatData.

示例:输入和输出程序的排序

限制: 不能将输入过程与 MERGE 语句配合使用。 合并操作的输入源必须是已排序文件的集合。 但是,如果要对合并的记录执行输出过程,请使用 MERGE . . . OUTPUT PROCEDURE。 例如:


MERGE Merge-Work
    ON ASCENDING KEY Merge-Key
    USING Input-File-1 Input-File-2 Input-File-3
    OUTPUT PROCEDURE ProcessOutput.

FILE SECTION中,必须在 SD 条目中定义 Merge-Work ,并在 FD 条目中定义输入文件。

相关参考
SORT 语句 (COBOL for Linux® on x86 Language Reference)
MERGE 语句 (COBOL for Linux on x86 Language Reference)