FIELD_NAMES parameter is used to override the fields being in the order of the columns in the database table. (By default, SQL*Loader Express uses the table column definitions found in the
ALL_TAB_COLUMNS view to determine the input field order and data types.)
An example of when this parameter could be useful is when the data in the input file is not in the same order as the columns in the table. In such a case, you can include a field name record (similar to a column header row for a table) in the data file and use the
FIELD_NAMES parameter to notify SQL*Loader to process the field names in the first record to determine the order of the fields.
Syntax and Description
FIELD_NAMES=[ALL | ALL_IGNORE | FIRST | FIRST_IGNORE | NONE]
The valid options for this parameter are as follows:
ALL--The field name record is processed for every data file.
ALL_IGNORE--Ignore the first (field names) record in all the data files and process the data records normally.
FIRST--In the first data file, process the first (field names) record. For all other data files, there is no field names record, so the data file is processed normally.
FIRST_IGNORE--In the first data file, ignore the first (field names) record and use table column order for the field order.
NONE--There are no field names records in any data file, so the data files are processed normally. This is the default.
If any field name has mixed case or special characters (for example, spaces), you must use either the
OPTIONALLY_ENCLOSED_BY parameter, or the
ENCLOSED_BY parameter to indicate that case should be preserved and special characters should be included as part of the field name.
If you are loading a CSV file that contains column headers into a table, and the fields in each row in the input file are in the same order as the columns in the table, then you could use the following:
> sqlldr hr TABLE=employees CSV=WITHOUT_EMBEDDED FIELD_NAMES=FIRST_IGNORE