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.)