SQL*LoaderでCSVファイルからデータを取り込むサンプルです。
前提
以下のCSVファイルから、以下のテーブルにロードします。
- (商品マスタ.csv)
- 商品コード,商品名,単価,適用日 1001,みかん,30,2021/1/1 1002,りんご,100,2021/1/2 1003,バナナ,200,2021/1/3
| 列名 | 型 | 
|---|---|
| CD | CHAR(4) | 
| NAME | VARCHAR2(20) | 
| PRICE | NUMBER(5,0) | 
| TEKIYO | DATE | 
サンプル
制御ファイル(ctlファイル)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | OPTIONS (SKIP=1)           --1行目は取り込まない(タイトル行のため) LOAD DATA CHARACTERSET JA16SJIS       --文字コードはSJIS INFILE 'C:¥商品マスタ.csv'  --取り込みファイル BADFILE 'C:¥商品マスタ.bad' --batファイル TRUNCATE                    --テーブルをTRUNCATEしてから取り込む INTO TABLE 商品マスタ       --テーブル名 FIELDS TERMINATED BY ','    --区切り文字はカンマ TRAILING NULLCOLS           --データなしの場合はNULLにする (                           --テーブルの列   CD,   NAME,   PRICE,   TEKIYO ) | 
実行コマンド
- 実行例
- C:¥>sqlldr usr01/usr01@db01 control=c:¥syohin.ctl log=c:¥商品マスタ.log
実行結果
| CD | NAME | PRICE | TEKIYO | 
|---|---|---|---|
| 1001 | みかん | 30 | 2021/1/1 | 
| 1002 | りんご | 100 | 2021/1/2 | 
| 1003 | バナナ | 200 | 2021/1/3 | 
解説
- 実行時のログは「商品マスタ.log」に出力されます。
- 取り込みに失敗した場合は「商品マスタ.bat」ファイルに対象データが書き出されます。