0

sqlldrを使用して、複数のマスター詳細データを持つOracleデータベースに以下のファイルをロードしたいと思います。

サンプルファイル:

1 015
3 brnadcode1 brandname1
3 brnadcode2 brandname2
3 brnadcode3 brandname3
1 018
3 patterncode1 pattername1 address1
3 patterncode2 pattername2 address2
3 patterncode3 pattername3 address3
  1. 1行目は、レコードタイプが「1」でテーブルコードが「015」です。
  2. brand_masterテーブルにロードする必要のあるブランドコードとブランド名を持つレコードタイプ「3」の1行目より下の行
  3. 5行目は、レコードタイプが「1」でテーブルコードが「018」です。
  4. パターンテーブルにロードする必要のあるパターンコード、pattername、およびアドレスを持つレコードタイプ「3」の5行目より下の行

私の理解によると、sqlldrを使用してこのファイルをロードするには、以下の手順に従う必要があります

  1. UTL_FILEパッケージを使用して2つの別々のファイルを生成します
    • a)レコードbrandcode、brandnameを持つbrand.txt
    • b)レコードpatterncode、pattername、addressを持つpattern.txt
  2. brand.txtとpattern.txtの2つの個別の制御ファイルを書き込み、データベーステーブルにロードします

複数のテーブルに1つの制御ファイルしかない上記のファイルをロードするのに役立つ人はいますか?

4

1 に答える 1

0

SQLローダーが015と018のコードを使用できる方法はないと思います。ただし、要件が記載されているとおりである場合は、複数のINTO句を使用して、アドレスがあるかどうかを判断することにより、適切なテーブルにロードできます。何かのようなもの:

INTO TABLE brand_master
   WHEN address = BLANKS 
   ...
INTO TABLE pattern
   WHEN address != BLANKS 
   ...
于 2011-07-26T14:53:59.967 に答える