Default: The default depends on whether any data file(s) are specified (using the DATA parameter). See "Default Values Used by SQL*Loader Express Mode".


The BAD parameter specifies the location and name of the bad file.

Syntax and Description


The bad file stores records that cause errors during insert or that are improperly formatted. If you specify the BAD parameter, you must supply either a directory or file name, or both. If you do not specify the BAD parameter, and there are rejected records, then the default file name is used.

The directory variable specifies a directory to which the bad file is written. The specification can include the name of a device or a network node.

The filename variable specifies a file name recognized as valid on your platform. You must specify only a name (and extension, if one other than .bad is desired). Any spaces or punctuation marks in the file name must be enclosed in single quotation marks.

The values of directory and filename are determined as follows:

  • If the BAD parameter is specified with a file name but no directory, then the directory defaults to the current directory.

  • If the BAD parameter is specified with a directory but no file name, then the specified directory is used and the default is used for the file name and the extension.

The BAD parameter applies to all the files which match the specified DATA parameter (if it is specified). It applies to the one data file (table-name.dat) if the data parameter is not specified.



  • If the file name (either the default or one you specify) already exists, then it is either overwritten or a new version is created, depending on your operating system.

  • If multiple data files are being loaded, then it is recommended that you either not specify the BAD parameter or that you specify it with only a directory for the bad file.


The following specification creates a bad file named emp1.bad in the current directory:

> sqlldr hr TABLE=employees BAD=emp1