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
mydat1.dat, both a bad file and discard file are explicitly specified. Therefore both files are created, as needed.
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.
mydat3.dat, the default bad file is created, if needed. A discard file with the specified name (
mydat3.dis) is created, as needed.
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