z/OS DFSORT Application Programming Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


RECORD control statement

z/OS DFSORT Application Programming Guide
SC23-6878-00

RECORD control statement

The RECORD control statement can be used to specify the type and lengths of the records being processed, and the minimum and average record lengths for a variable-length sort.

The RECORD control statement is required when:
  • A user exit changes record lengths.
  • A user exit supplies all of the input records.
  • A Conventional merge or tape work data set sort uses VSAM input.
TYPE
Read syntax diagramSkip visual syntax diagram
>>-TYPE=x------------------------------------------------------><

Can be used to specify the record type when input is VSAM, or an E15 or E32 exit supplies all of the input records. The record type can be:
  • Fixed-length (F). The records are processed without an RDW, so the data starts in position 1. Control statement positions should be specified accordingly.

    An RRDS can always be processed as fixed-length. A KSDS, ESDS or VRRDS used for input should only be processed as fixed-length if all of its records have a length equal to the maximum record size defined for the cluster. Otherwise, input records which are shorter than the maximum record size are padded with bytes that may or may not be zeros (that is, "garbage" bytes).

  • Variable-length (V). The records are processed with an RDW in positions 1-4, so the data starts in position 5. Control statement positions should be specified accordingly.

    An RRDS, KSDS, ESDS or VRRDS can always be processed as variable-length. For VSAM input, DFSORT reads each record and prepends an RDW to it. For VSAM output, DFSORT removes the RDW before writing each record.

TYPE is only required for a Conventional merge or tape work data set sort that uses VSAM input or an E15 or E32 exit that supplies all of the input records.

If input is non-VSAM, DFSORT determines the record type from the RECFM of the input data set and ignores TYPE.

If input is VSAM, or an E15 or E32 exit supplies all of the input records, DFSORT determines or assigns the record type as follows, using the information in the order listed:
  1. F or V from RECORD TYPE if specified.
  2. F or V from SORTOUT RECFM if available.
  3. V if OUTFIL VTOF, CONVERT or VLFILL is specified, or F if OUTFIL FTOV is specified.
  4. F or V from OUTFIL RECFM if available.
  5. V if SORTIN is VSAM and SORTOUT is VSAM; otherwise F.
    Note:
    1. If the selected record type is not what you want DFSORT to use, specify RECORD TYPE=F or RECORD TYPE=V as appropriate.
    2. For a Conventional merge or tape work data set sort, you must specify RECORD TYPE=F or RECORD TYPE=V as appropriate.

x can be one of the following:

F
fixed-length record processing.
Note: FB can be used instead of F.
V
variable-length record processing.
Note: VB can be used instead of V.
D
ASCII variable-length record processing.
Note: DB can be used instead of D.

Default: F or V as described previously in this section. See Specification/override of DFSORT options for full override details.

Applicable Functions: See Specification/override of DFSORT options.

LENGTH
Read syntax diagramSkip visual syntax diagram
>>-LENGTH=--(--------------------------------------------------->

>--+-L1-------------------------------------------------------------------+-->
   +-+----+--,--L2--------------------------------------------------------+   
   | '-L1-'                                                               |   
   +-+----+--,--+----+--,--L3---------------------------------------------+   
   | '-L1-'     '-L2-'                                                    |   
   +-+----+--,--+----+--,--+----+--,--L4----------------------------------+   
   | '-L1-'     '-L2-'     '-L3-'                                         |   
   +-+----+--,--+----+--,--+----+--,--+----+--,--L5-----------------------+   
   | '-L1-'     '-L2-'     '-L3-'     '-L4-'                              |   
   +-+----+--,--+----+--,--+----+--,--+----+--,--+----+--,--L6------------+   
   | '-L1-'     '-L2-'     '-L3-'     '-L4-'     '-L5-'                   |   
   '-+----+--,--+----+--,--+----+--,--+----+--,--+----+--,--+----+--,--L7-'   
     '-L1-'     '-L2-'     '-L3-'     '-L4-'     '-L5-'     '-L6-'            

>--)-----------------------------------------------------------><

Can be used to specify various record lengths. L1 through L3 apply to fixed-length and variable-length record processing. L4 and L5 apply to variable-length record processing. L6 and L7 are accepted, but not used.

LENGTH is required only if:
  • A user exit changes record lengths.
  • A user exit supplies all of the input records.
L1
Input record length. For variable-length records, maximum input record length.
Note:
  1. L1 is ignored if the input record length is available from SORTIN.
  2. L1 is required if there is no SORTIN or SORTINnn data set, unless L2 is specified.

Default: The SORTIN or SORTINnn record length. For VSAM data sets, the maximum record size (RECSZ value).

L2
Record length after E15. For variable-length records, maximum record length after E15.
Note:
  1. L2 is ignored if E15 is not used.
  2. An accurate value for L2 must be specified if E15 changes the record length.
  3. L2 must be at least 18 bytes if tape work data sets are used.
  4. L2 is ignored if there is no SORTIN or SORTINnn data set, unless L1 is not specified.

Default: L1.

L3
Output record length. For variable—length records, maximum output record length.
Note: L3 is ignored if the record length (LRECL or VSAM RECSZ) is available from SORTOUT, or if NOSOLRF is in effect and E35, INREC, OUTREC, and OUTFIL are not used.
Default: One of the following, in the order listed:
  1. SORTOUT record length if available
  2. OUTREC record length if SOLRF is in effect
  3. INREC record length if SOLRF is in effect
  4. L2 if specified providing an E15 is used
  5. SORTIN or SORTINnn record length if available
  6. L1
L4
Minimum record length.
Note:
  1. L4 is not used if the Blockset technique is selected
  2. L4 is only used for variable-length record sort applications.
  3. Specifying L4 may improve performance, but if L4 is too large, DFSORT could fail with message ICE015A.

Default: The minimum length needed to contain all control fields. This number must be at least 18 bytes if the maximum input record length is greater than 18 bytes; otherwise, DFSORT sets L4 to 18 bytes.

L5
Average record length.
Note:
  1. L5 is not used if the Blockset technique is selected
  2. L5 is overridden by the AVGRLEN parameter if both are specified
  3. L5 is only used for variable-length sorts.

Default: None; optional.

L6, L7
Record lengths that are accepted but are reserved for future use.
Note:
  1. You can drop values from the right. For example, LENGTH=(80,70,70,70).
  2. You can omit values from the middle or left, provided you indicate their omission by a comma or semicolon. For example, LENGTH=(,,,30,80).
  3. Parentheses are optional when L1 alone is specified. If any of L2 through L7 is specified, with or without L1, parentheses are required.

Applicable Functions: See Specification/override of DFSORT options.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014