Default: The same file name as the data file, but with an extension of .dsc
.
Purpose
The DISCARD
parameter lets you optionally specify a discard file to store records that are neither inserted into a table nor rejected. They are not bad records, they simply did not match any record-selection criteria specified in the control file, such as a WHEN
clause for example.
Syntax and Description
DISCARD=[directory/][filename]
If you specify the DISCARD
parameter, then you must supply either a directory or file name, or both.
The directory
parameter specifies a directory to which the discard file will be written. The specification can include the name of a device or network node. The value of directory is determined as follows:
If the DISCARD
parameter is not specified at all, but the DISCARDMAX
parameter is, then the default directory is the one in which the SQL*Loader control file resides.
If the DISCARD
parameter is specified with a file name but no directory, then the directory defaults to the current directory.
If the DISCARD
parameter is specified with a directory but no file name, then the specified directory is used and the default is used for the name and the extension.
The filename
parameter specifies a file name recognized as valid on your platform. You must specify only a name (and extension, if one other than .dsc is desired). Any spaces or punctuation marks in the file name must be enclosed in single quotation marks.
If neither the DISCARD
parameter nor the DISCARDMAX
parameter is specified, then a discard file is not created even if there are discarded records.
If the DISCARD
parameter is not specified, but the DISCARDMAX
parameter is, and there are discarded records, then the discard file is created using the default name and the file is written to the same directory in which the SQL*Loader control file resides.
If multiple data files are being loaded and you are also specifying the DISCARD
parameter, it is recommended that you specify only a directory for the discard file, not a file name. If you specify a file name, and a file with that name already exists, then it is either overwritten or a new version is created, depending on your operating system.
A discard file specified on the command line becomes the discard file associated with the first INFILE
statement (if there is one) in the control file. If the discard file is also specified in the control file, then the command-line value overrides it. If a discard file with that name already exists, then it is either overwritten or a new version is created, depending on your operating system.
"Discarded and Rejected Records" for information about the format of discard files
Example
Assume that you are loading a data file named employees.dat
. The following example supplies only a directory name so the name of the discard file will be employees.dsc
and it will be created in the mydir
directory.
DISCARD=mydir/