ネストした表の列を含む表をロードする場合、親表を子表から分割してロードする場合があります。SID(システム生成またはユーザー定義)がロード時にわかっている場合(SIDがデータとともにデータ・ファイルにある場合)、親表と子表を別々にロードできます。
次の例は、ユーザー定義SIDを持つ親および子表をロードする方法を示しています。
例11-25 ユーザー定義SIDを使用した親表のロード
制御ファイルの内容
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))
データ・ファイル(sample.dat)
101,Math,21E978407D4441FCE03400400B403BC3,| 210,"Topology",21E978408D4441FCE03400400B403BC3,|
注意:
例の左に付けた太字の数字は、次の注意事項と対応しています。
mysid
は、実際のSIDを含むデータ・ファイルのフィールドにマップされているFILLERフィールドで、SID
句に対する引数として指定できます。
例11-26 ユーザー定義SIDを使用した子表のロード
制御ファイルの内容
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))
データ・ファイル(sample.dat)
21034, "Topological Transforms", 21E978407D4441FCE03400400B403BC3, 77777, "Impossible Proof", 21E978408D4441FCE03400400B403BC3,
注意:
例の左に付けた太字の数字は、次の注意事項と対応しています。
表レベルのSID
句を指定すると、SQL*Loaderによって、ネストした表の記憶表がロードされます。sidsrc
は、実際のSIDのソースである、FILLERフィールド名です。