When you load a table that contains a nested table column, it may be possible to load the parent table separately from the child table. You can load the parent and child tables independently if the SIDs (system-generated or user-defined) are already known at the time of the load (that is, the SIDs are in the data file with the data).
The following examples illustrate how to load parent and child tables with user-provided SIDs.
Example 11-25 Loading a Parent Table with User-Provided SIDs
Control File Contents
LOAD DATA
INFILE 'sample.dat' "str '|\n' "
INTO TABLE dept
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
( dept_no CHAR(3),
dname CHAR(20) NULLIF dname=BLANKS ,
mysid FILLER CHAR(32),
1 projects SID(mysid))
Data File (sample.dat)
101,Math,21E978407D4441FCE03400400B403BC3,| 210,"Topology",21E978408D4441FCE03400400B403BC3,|
Note:
The callout, in bold, to the left of the example corresponds to the following note:
mysid
is a filler field that is mapped to a data file field containing the actual set IDs and is supplied as an argument to the SID
clause.
Example 11-26 Loading a Child Table with User-Provided SIDs
Control File Contents
LOAD DATA
INFILE 'sample.dat'
INTO TABLE dept
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
1 SID(sidsrc)
(project_id INTEGER EXTERNAL(5),
project_name CHAR(20) NULLIF project_name=BLANKS,
sidsrc FILLER CHAR(32))
Data File (sample.dat)
21034, "Topological Transforms", 21E978407D4441FCE03400400B403BC3, 77777, "Impossible Proof", 21E978408D4441FCE03400400B403BC3,
Note:
The callout, in bold, to the left of the example corresponds to the following note:
The table-level SID
clause tells SQL*Loader that it is loading the storage table for nested tables. sidsrc
is the filler field name that is the source of the real set IDs.