SQL*LoaderでファイルをCLOB列に取り込むサンプルです。
前提
「C:\file\」フォルダ内にある以下3ファイルを、myfileテーブルに取り込んでみます。
sample01.xlsx
sample02.xlsx
sample03.xlsx
sample02.xlsx
sample03.xlsx
列名 | 型 |
---|---|
ID | NUMBER(3,0) |
FILEDATA | CLOB |
まずは、以下のようなcsvファイルを作成します。
- (data.csv)
- ID,FILEDATA 1, c:/file/sample01.xlsx 2, c:/file/sample02.xlsx 3, c:/file/sample03.xlsx
サンプル
12、13行目の指定がファイルを読み込む指定です。
制御ファイル(ctlファイル)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
OPTIONS (SKIP=1) --1行目は取り込まない(タイトル行のため) LOAD DATA CHARACTERSET JA16SJIS --文字コードはSJIS INFILE 'C:¥data.csv' --取り込みファイル BADFILE 'C:¥data.bad' --batファイル TRUNCATE --テーブルをTRUNCATEしてから取り込む INTO TABLE myfile --テーブル名 FIELDS TERMINATED BY ',' --区切り文字はカンマ TRAILING NULLCOLS --データなしの場合はNULLにする ( --テーブルの列 ID NUMBER(3,0), filename FILLER CHAR(200), FILEDATA LOBFILE(filename) TERMINATED BY EOF ) |
実行コマンド
- 実行例
- C:¥>sqlldr usr01/usr01@db01 control=c:¥myfile.ctl
解説
- CLOB列にファイル取り込むには、LOBFILEを使用します。(上例の13行目)
- LOBFILEに指定するファイル名は、FILLERで読み込んだファイル名を指定します。(上例の12行目)