If there is no INTO TABLE clause specified for a record, then the record is discarded. This situation occurs when every INTO TABLE clause in the SQL*Loader control file has a WHEN clause and, either the record fails to match any of them, or all fields are null.
No records are discarded if an INTO TABLE clause is specified without a WHEN clause. An attempt is made to insert every record into such a table. Therefore, records may be rejected, but none are discarded.
Case study 7, Extracting Data from a Formatted Report, provides an example of using a discard file. (See "SQL*Loader Case Studies" for information on how to access case studies.)