Как загрузить файлы с несколькими основными данными? - PullRequest
0 голосов
/ 26 июля 2011

Я хотел бы загрузить следующие файлы в базу данных oracle, в которой есть несколько основных данных, используя sqlldr.

Образец файла:

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. Строки ниже 1-й строки с типом записи «3», имеющие марку и фирменное наименование, которое требуется загрузить в таблицу brand_master
  3. 5-я строка имеют записьвведите "1" и код таблицы "018"
  4. Строки ниже 5-й строки с типом записи "3", которые имеют код шаблона, имя шаблона и адрес, который требуется загрузить в таблицу шаблонов

В соответствии с моим пониманием для загрузки этих файлов с использованием sqlldr необходимо выполнить следующие шаги

  1. Создать два отдельных файла с помощью пакета UTL_FILE
    • a) brand.txt, которые имеют записиbrandcode, brandname
    • b) pattern.txt, в котором есть записи patterncode, pattername, address
  2. Записать 2 отдельных файла управления для brand.txt и pattern.txt в load в таблице базы данных

Может ли кто-нибудь помочь загрузить вышеуказанный файл только с одним контрольным файлом в нескольких таблицах?

1 Ответ

0 голосов
/ 26 июля 2011

Я не верю, что SQL Loader может использовать коды 015 и 018. Однако, если требования соответствуют заявленным, вы можете использовать несколько предложений INTO для загрузки в соответствующую таблицу, определяя, существует ли адрес или нет. Что-то вроде:

INTO TABLE brand_master
   WHEN address = BLANKS 
   ...
INTO TABLE pattern
   WHEN address != BLANKS 
   ...
...