Answer:
D. Good file
Explanation:
SQL loader is responsible for loading data from files into the database. It needs the mandatory control file, bad file, log file and an optional discard file.
A. Bad file
This file shares its name with the data file and has .bad extension.
The bad file holds all the records which are rejected ( bad data ). If a bad file is not available, it is automatically created. The data is either rejected by the SQL loader or by Oracle itself. The rejected records are not placed in the data file and hence, have to be placed in the bad file.
It is mandatory to have a bad file for every data file.
B. Control file
This is a mandatory file. This is a text file needed by the SQL loader to perform the loading process.
It contains the information related to location of data, specifies the criteria for selecting data for insertion, location for inserting data, and the like.
C. Discard file
The discard file is created if the need arises. This is not a mandatory file to be present.
The data which is discarded and gets filtered out, is placed in the discard file.
The data is not inserted in the table because it does not matches the criteria for the data to be inserted.
This criteria is mentioned in the control file.
The data is discarded only due to the mismatch and not because it is rejected or is bad data.
E. Log file
This file is mandatory to the execution. In absence of log file, the loader does not proceeds with execution and gets terminated.
In the beginning of the execution, a log file must be created by the loader. This file contains all the information regarding the data loading and also the errors encountered during the loading process.