Anda di halaman 1dari 4

COBOL SORT verb

The SORT verb takes one or more files of input records and
sorts them in ascending or descending order by one or more
programmer specified keys.

The result is a single sorted file.

Format: SORT sd-file-name


ON ASCENDING/DESCENDING KEY sd-key-name

|USING input-file-name |
|INPUT PROCEDURE IS routine-name|

|GIVING sorted-file-name |
|OUTPUT PROCEDURE IS routine-name|.

sd-file-name a temporary sort work file


SD in the DATA DIVISION
SELECT statement in the
ENVIRONMENT DIVISION
MUST be CLOSED when the sort is
called

sd-key-name key field from the SD record


description

USING input-file-name this is the file that


will be sorted
FD in the DATA DIVISION
SELECT stmt in the
ENVIRONMENT DIVISION
MUST be CLOSED when the
sort is called

INPUT PROCEDURE IS routine-name

- routine-name is a programmer coded routine


that will
select which records are to be used in the
sort

- input procedure pseudocode:

OPEN input-file-name

READ the first record

While there are input records


Modify the current record
MOVE record to sd-file-record
RELEASE sd-file-record
READ next record
Endwhile

CLOSE input-file-name

- To release a record to the sort:

RELEASE sd-file-record [FROM ws-area].

this is equivalent to a WRITE in COBOL


except that its
performed on an SD file and is used ONLY in
an input
procedure

GIVING sorted-file-name this is the resulting


sorted file
FD in the DATA DIVISION
SELECT stmt in the
ENVIRONMENT DIVISION
MUST be CLOSED when the
sort is called

OUTPUT PROCEDURE IS routine-name


- routine-name is a programmer coded routine
that will
manipulate the records AFTER they are sorted

- output procedure pseudocode:

OPEN sorted-file-name

RETURN the first sd-file-record

While there are input records


Modify the sorted record
MOVE sd-file-record to sorted-file-record
WRITE sorted-file-record
RETURN the next sd-file-record
Endwhile

CLOSE sorted-file-name

- To return a record:

RETURN sd-file-name [INTO ws-area]


[AT END do something]
[NOT AT END do something else]
END-RETURN.

this is equivalent to a READ in COBOL except


that it is
performed on an SD file and is used ONLY in
an output
procedure

The COBOL SORT verb calls SYNCSORT to do its work.

There are some "special" registers that are set by the SORT
verb and can be set or tested by a programmer.

SORT-RETURN after a SORT this will contain a


return code that
can be tested
0 success
16 failure

if a programmer moves a non-zero value


to this
register, the sort will stop on the
next RETURN
or RELEASE

SORT-FILE-SIZE equivalent to SYNCSORTs FILSZ

SORT-MESSAGE can use this one to specify an 8 byte


ddname for
SYNCSORT to write its messages to

In COBOL: MOVE 'SORTOUT' TO SORT-


MESSAGE.

In JCL: //SYSOUT DD SYSOUT=*


//SORTOUT DD SYSOUT=*

Anda mungkin juga menyukai