|
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
>>-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: - F or V from RECORD TYPE if specified.
- F or V from SORTOUT RECFM if available.
- V if OUTFIL VTOF, CONVERT or VLFILL is specified, or F if OUTFIL
FTOV is specified.
- F or V from OUTFIL RECFM if available.
- V if SORTIN is VSAM and SORTOUT is VSAM; otherwise F.
Note: - If the selected record type is not what you want DFSORT to use,
specify RECORD TYPE=F or RECORD TYPE=V as appropriate.
- 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
>>-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: - L1 is ignored if the input record length is available from SORTIN.
- 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: - L2 is ignored if E15 is not used.
- An accurate value for L2 must be specified if E15 changes the
record length.
- L2 must be at least 18 bytes if tape work data sets are used.
- 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: - SORTOUT record length if available
- OUTREC record length if SOLRF is in effect
- INREC record length if SOLRF is in effect
- L2 if specified providing an E15 is used
- SORTIN or SORTINnn record length if available
- L1
- L4
- Minimum record length.
Note: - L4 is not used if the Blockset technique is selected
- L4 is only used for variable-length record sort applications.
- 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: - L5 is not used if the Blockset technique is selected
- L5 is overridden by the AVGRLEN parameter if both are specified
- 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:
- You can drop values from the right. For example, LENGTH=(80,70,70,70).
- You can omit values from the middle or left, provided you indicate
their omission by a comma or semicolon. For example, LENGTH=(,,,30,80).
- 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.
|