Help us understand the problem. What is going on with this article?

Sql Loader 列の読み飛ばし方(CSV・テーブル両方)

More than 3 years have passed since last update.

Sql Loaderで列の読み飛ばし方がわからなくてハマったので、解決法をメモしておく。
環境:Oracle 11g
※環境が手元にないのでコードは未テストです。

テーブルの読み飛ばし方

【やりたいこと】
下記のようなCSVのデータがあった時に、テーブル側の列(B,D)を読み飛ばす。

CSVのデータ
A,C,E

テーブル
列A,列B,列C,列D,列E

sample.CTL
省略...
(
 A
,B CONSTANT ' '
,C
,D COSTANT ' '
,E
)

正確には読み飛ばすのではなく、テーブルの項目数にCSVの項目数が合うように定数などを編集します。
本当は項目の初期値を設定できればよかったのですが、やり方がわかりませんでした(orz

どうやら、CONSTANTを指定するとCSVを読み進める代わりに
定数を読み込んでくれるようです。(テーブルの列BならCSVのCの代わりに定数' ')

なので、上記の場合CSVとテーブルの項目のマッピングは以下のようになります。
テーブル|CSV
列A|A
列B|' '(定数)
列C|C
列D|' '(定数)
列E|E

※定数以外でも同じようなことができるかは未調査。

CSVの読み飛ばし方

【やりたいこと】
下記のようなCSVのデータがあった時に、CSV側の列(B,D)を読み飛ばす。

CSVのデータ
A,B,C,D,E

テーブル
列A,列C,列E

sample.CTL
省略...
(
 A
,"B" filler
,C
,"D" filler
,E
)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away