SQL*Loaderで値をTRIMして取り込むサンプルです。
サンプル
以下のCSVファイルから、以下のテーブルにロードします。
- (test.csv)
- 名称1,名称2,名称3 テスト1,___aa___,___bb___
_は半角スペースと読み替えてください。
制御ファイル(ctlファイル)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
OPTIONS (SKIP=1) --1行目は取り込まない(タイトル行のため) LOAD DATA CHARACTERSET JA16SJIS --文字コードはSJIS INFILE 'C:¥test.csv' --取り込みファイル TRUNCATE --テーブルをTRUNCATEしてから取り込む INTO TABLE tbl_test --テーブル名 FIELDS TERMINATED BY ',' --区切り文字はカンマ TRAILING NULLCOLS --データなしの場合はNULLにする ( --テーブルの列 NAME1, NAME2, NAME3 "TRIM(:NAME3)" --NAME3はTRIMして取り込む ) |
実行コマンド
- 実行例
- C:¥>sqlldr usr01/usr01@db01 control=c:¥test.ctl
実行結果
NAME1 | NAME2 | NAME3 |
---|---|---|
テスト1 | ___aa___ | bb |
_は半角スペースと読み替えてください。
TRIMを指定していないNAME2は前後のスペースがそのまま取り込まれますが、
NAME3は前後の空白が取り除かれていることが分かります。
解説
- 値をTRIMして取り込みたい場合は、
「"TRIM(:<カラム名>)"」を指定すればOKです。 - 末尾のスペースのみ取り除きたい場合はRTRIM()、先頭のスペースのみを取り除きたい場合はLTRIM()をご使用ください。