Secondary data files (SDFs) are similar in concept to primary data files. Like primary data files, SDFs are a collection of records, and each record is made up of fields. The SDFs are specified on a per control-file-field basis. They are useful when you load large nested tables and VARRAY
s.
SDFs are specified using the SDF
parameter. The SDF
parameter can be followed by either the file specification string, or a FILLER
field that is mapped to a data field containing one or more file specification strings.
As for a primary data file, the following can be specified for each SDF:
The record format (fixed, stream, or variable). Also, if stream record format is used, then you can specify the record separator.
The record size.
The character set for an SDF can be specified using the CHARACTERSET
clause (see "Handling Different Character Encoding Schemes").
A default delimiter (using the delimiter specification) for the fields that inherit a particular SDF specification (all member fields or attributes of the collection that contain the SDF specification, with exception of the fields containing their own LOBFILE specification).
Also note the following regarding SDFs:
If a nonexistent SDF is specified as a data source for a particular field, then that field is initialized to empty. If the concept of empty does not apply to the particular field type, then the field is initialized to null.
Table-level delimiters are not inherited by fields that are read from an SDF.
To load SDFs larger than 64 KB, you must use the READSIZE
parameter to specify a larger physical record size. You can specify the READSIZE
parameter either from the command line or as part of an OPTIONS
clause.