To load data from multiple data files in one SQL*Loader run, use an INFILE
clause for each data file. Data files need not have the same file processing options, although the layout of the records must be identical. For example, two files could be specified with completely different file processing options strings, and a third could consist of data in the control file.
You can also specify a separate discard file and bad file for each data file. In such a case, the separate bad files and discard files must be declared immediately after each data file name. For example, the following excerpt from a control file specifies four data files with separate bad and discard files:
INFILE mydat1.dat BADFILE mydat1.bad DISCARDFILE mydat1.dis INFILE mydat2.dat INFILE mydat3.dat DISCARDFILE mydat3.dis INFILE mydat4.dat DISCARDMAX 10 0
For mydat1.dat,
both a bad file and discard file are explicitly specified. Therefore both files are created, as needed.
For mydat2.dat,
neither a bad file nor a discard file is specified. Therefore, only the bad file is created, as needed. If created, the bad file has the default file name and extension mydat2.bad
. The discard file is not created, even if rows are discarded.
For mydat3.dat,
the default bad file is created, if needed. A discard file with the specified name (mydat3.dis
) is created, as needed.
For mydat4.dat,
the default bad file is created, if needed. Because the DISCARDMAX
option is used, SQL*Loader assumes that a discard file is required and creates it with the default name mydat4.dsc
.