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関数の詳細は、以下関連記事をご覧ください。