我正在研究一个需要使用merge语句将两个文件放在一起并对它们进行排序的程序。当然,如果我没有问题,我不会在这里。当我运行我的程序时,我必须做一些工作,然后添加到输出。当它去执行该段时,它会给出一个错误,上面写着“合并文件中的序列ORDER-FILE-SOR”。这是我的代码:
100-MAIN.
MERGE ORDERS-FILE-SORT
ON ASCENDING KEY REQUEST-DATE-S
ON ASCENDING KEY CUST-NUMBER-S
ON ASCENDING KEY CUST-ORDER-NUMBER-S
ON ASCENDING KEY PART-NUMBER-S
USING ORDERS-FILE-PRIOR-IN
ORDERS-FILE-NEW-IN
OUTPUT PROCEDURE 200-FILE-START
STOP RUN.
200-FILE-START.
OPEN OUTPUT ORDERS-FILE-OUT
ACCEPT WS-DATE FROM DATE
MOVE RUN-MONTH TO MONTH-1
MOVE RUN-DAY TO DAY-1
MOVE RUN-YEAR TO YEAR-1
PERFORM 300-NEXT-PAGE
PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
RETURN ORDERS-FILE-SORT
AT END
MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 400-PROCESS-FILE
END-RETURN
END-PERFORM.
CLOSE ORDERS-FILE-OUT.
它显示的输出是标题行,似乎停在“RETURN ORDERS-FILE-SORT”行。
任何帮助都会非常感激,因为我觉得程序的其余部分运行得很好,但在修复之前我无法检查它。
答案 0 :(得分:1)
MERGE动词组合了两个或多个相同顺序的文件。要使它工作,您必须已根据一组相同的升序/降序键对它们进行排序。
如果您的输入尚未按此顺序排列,则可能需要按REQUEST-DATE-S,CUST-NUMBER-S,CUST-ORDER-NUMBER-S和PART-NUMBER-S
对每个文件进行排序