DFT (Default) keyword—physical files only
You can use this field-level keyword to specify a default value for a field.
DFT('value' | numeric-value | X'hexadecimal-value' | *NULL)
Without this keyword, character and hexadecimal fields are set to blanks as default and numeric fields are set to zeros as default. However, if you specify the ALWNULL keyword for the field, then the character, hexadecimal, and numeric fields are set to the null value as default.
- If the field being defined is a character field, specify a character constant,
hexadecimal value, or *NULL. Specify character strings within single quotation
marks. If the field is variable length (VARLEN), then the length of the string
must be less than or equal to the allocated length.
Specify hexadecimal values as an X followed by a combination of the digits 0 through 9 and the letters A through F. Enclose the combination in single quotation marks. The number of hexadecimal digits in single quotation marks must be exactly twice the specified length of the field. If the field is variable length (VARLEN), then the number of hexadecimal digits in single quotation marks must be exactly twice the allocated length.
- If the field being defined is a hexadecimal field, specify a character
constant, hexadecimal value, or *NULL. Note: If a character constant is specified, the hexadecimal representation of the character constant is the default value.
Specify character strings within single quotation marks. If the field is variable length (VARLEN), then the length of the string must be less than or equal to the allocated length.
Specify hexadecimal values as an X followed by a combination of the digits 0 through 9 and the letters A through F. Enclose the combination in single quotation marks. The number of hexadecimal digits in single quotation marks must be exactly twice the specified length of the field. If the field is variable length (VARLEN), then the number of hexadecimal digits in single quotation marks must be exactly twice the allocated length.
- If you are defining a numeric field, specify a numeric value (digits 0 through 9 specified without single quotation marks) or *NULL. For a value other than zero in positions 36 and 37, specify the decimal character with a numeric constant in the appropriate position in the DDS.
- If you specify *NULL, then you must also specify the ALWNULL keyword on the field.
- If you do not specify any value (DFT('')), this indicates a default of a 0 length string and is valid only when the field is variable length (the VARLEN keyword must also be specified).
- If you are defining a date field, specify a valid date in the same format
specified on the DATFMT keyword and use the same separator as specified on
the DATSEP keyword. For example,
DFT('12/15/05')
is the default value if *MDY is specified for DATFMT and '/' is specified for DATSEP.If the DFT keyword is not specified, the default value is the current date.
- If you are defining a time field, specify a valid time in the same format
specified on the TIMFMT keyword and use the same separator as specified on
the TIMSEP keyword. For example,
DFT('11.00.00')
is the default value if *ISO is specified for TIMFMT. The default separator for *ISO is a period (.).If the DFT keyword is not specified, the default value is the current time.
- If you are defining a timestamp field, you must specify the default value
in the following format:
DFT('YYYY-MM-DD-HH.MM.SS.UUUUUU')
If the DFT keyword is not specified, the default value is the current time.
- When the program does an output operation to a logical file based on this physical file and the record format in the logical file does not name this field.
- When you use the Initialize Physical File Member (INZPFM) command for a member in this file.
- When you use the Copy File (CPYF) command with FMTOPT(*MAP) specified and a field in the to-file is not in the from-file.
- You specify the JDFTVAL keyword for the join logical file.
- The file being defined is specified as a secondary file in the join logical file.
- When the input operation occurs and the link to the secondary file produces no records.
This keyword does not affect the physical file on input operations.
Example
The following example shows how to specify the DFT keyword.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010A R RECORD1
00020A CHARFLD1 20A DFT('Sample field')
00030A CHARFLD2 5A DFT(X'D985955185')
00040A HEXFLD1 3H DFT('ABC')
00050A HEXFLD2 3H DFT(X'C1C2C3')
00060A NUMFLD1 5S 0 DFT(99999)
00070A NUMFLD2 5S 2 DFT(999.99)
00080A NUMFLD3 5S 2 DFT(999)
00090A NUMFLD4 5S 2 DFT(*NULL)
00100A ALWNULL
00110A NUMFLD5 5S 2 DFT(999.99)
00120A ALWNULL
00130A DATFLD1 L DATFMT(*MDY) DATSEP('-')
00140A DFT('12-31-05')
00150A TIMFLD1 T DFT('11.15.00')
A
The default value for CHARFLD1 is 'Sample field'. The default value for CHARFLD2 is hexadecimal D985955185. The default value for HEXFLD1 is C1C2C3 (the hexadecimal representation of the character constant). The default value for HEXFLD2 is C1C2C3. The default value for NUMFLD1 is 99999 (no decimal character is required because the field has zero decimal positions). The default value for NUMFLD2 is 999.99. The default value for NUMFLD3 is 999 (no decimal character is required if you do not need to specify decimal values). The default value for NUMFLD4 is the null value (ALWNULL is a required keyword for the field if DFT(*NULL) is specified). The default value for NUMFLD5 is 999.99; the field also allows the null value. The default value for DATFLD1 is 12-31-05. The default value for TIMFLD1 is 11.15.00 (*ISO format).