SQL*Loaderで値を大文字/小文字に変換して取り込むには、
UPPERまたは、LOWERを使用します。
サンプル
以下のCSVファイルからロードしてみます。
- (test.csv)
 - PREF_JP,PREF_EN,CITY_EN 北海道,Hokkaido,Sapporo 青森県,Aomori,Aomori 岩手県,Iwate,Morioka
 
制御ファイル(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にする (                           --テーブルの列   PREF_JP,   PREF_EN "UPPER(:PREF_EN)",  --PREF_ENを大文字に変換   CITY_EN "LOWER(:CITY_EN)",  --CITY_ENを小文字に変換 )  | 
					
11、12行目で変換(UPPER、LOWER)を行っています。
実行コマンド
- 実行例
 - C:¥>sqlldr usr01/usr01@db01 control=c:¥test.ctl
 
実行結果
| PREF_JP | PREF_EN | CITY_EN | 
|---|---|---|
| 北海道 | HOKKAIDO | sapporo | 
| 青森県 | AOMORI | aomori | 
| 岩手県 | IWATE | morioka | 
解説
- 値を大文字、小文字に変換して取り込みたい場合は、
「"UPPER(:<カラム名>)"」または
「"LOWER(:<カラム名>)"」を指定すればOKです。 - UPPER、LOWER関数の詳細は、以下関連記事をご覧ください。