プロが教える店舗&オフィスのセキュリティ対策術

SQL*Loaderを用いてOracleのテーブルにデータを格納
しようと思っています。
格納するデータはカンマ区切りのCSVファイルです。

入力CSVファイルは他テーブル用のファイルなので、
ローダーで落とし込むテーブルとは列数が異なります。

ですので、「CSVの5列目の値をテーブルのAA_NOというフィールドに
格納する。ということが可能なのでしょうか?」

CSVファイルのある行が
a,b,c,d,e,f
というデータの場合、テーブルには
a,e,f
とインポートしたいのです。

よろしくお願いします。

A 回答 (2件)

さきほど回答しましたhamu1です。


訂正します。
a,b,c,d,e,f
というデータの場合、テーブルには
a,e,f
をインポートするときには、

(略)
(
a,
"b" filler,
"c" filler,
"d" filler,
e,
f
)

となります。
間違えちゃって、、すいません。
    • good
    • 3
この回答へのお礼

hamu1さん、こんばんは。

理解するのに時間がかかりましたが、なるほどやっとわかりました。

TRAILING NULLCOLSの後の括弧の中には、
CSVの項目に対する設定なんですね・・・。
ずっとテーブルのカラムに対する設定だと思ってました・・・。
今まではテーブルもCSVも項目数が同じなので気づきませんでした。

上記の方法でインポートすることが出来ました。
これでまた一つ頭が良くなりました。
ありがとうございました。

お礼日時:2007/08/28 18:17

コントロールファイルに下記のように記述すればできますよ。


↓ここから↓↓

LOAD DATA
INFILE 読み込むファイル名
APPEND←インポートモードはご自由に
INTO テーブル名
FIELDS TERMINATED BY ","
TRAILING NULLCOLS←オプションは好きにしてください。
(
a, ←読み込みたいテーブルのカラム名にしてください
"b" filler,
"c" filler,
d filler,
"e" filler,
"f" filler
)

↑↑↑↑↑↑↑
こんなかんじです。
捨てたいフィールドには、fillerと書けば読み飛ばします。
ちなみに、
"b" filler,
↑この"b"は別にどんな名称でも構いません。("b1"でも"dummy"と書いても何でもよし)

意味わかりますでしょうか?
是非やってみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A