SQLLDR - выборочная загрузка из текста с разделителями - PullRequest
1 голос
/ 16 февраля 2011

Я ищу способ сделать выборочную загрузку, используя SQLLDR.Исходный файл в формате «с разделителями трубы».

Я знаю, что есть способ для этого, если источник находится в предопределенной позиции.Это объясняется здесь с использованием ключевых слов WHEN & POSITION.

Что я могу сделать, если исходный файл имеет разделитель "pipe" или "tab"?

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Я не уверен, что вы имеете в виду под «выборочной загрузкой»?

Но если вы только спрашиваете, как вы можете загрузить файл, в котором каждый столбец разделен каналом, используйте параметр FIELDS TERMINATED BY '|' в контрольном файле.

См. Главу «Переменная«Формат записи» в руководстве по загрузчику SQL * для более подробной информации и примеров:http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_concepts.htm#sthref476

0 голосов
/ 31 января 2017
LOAD DATA
INFILE 'c:\myfile.txt'  
TRUNCATE INTO TABLE T1
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS (field1, field2 , field3, field4)
0 голосов
/ 21 марта 2014

В зависимости от того, какую версию используемой вами версии SQLLDR вы можете использовать ключевое слово FILLER, чтобы пропустить поле из файла.

Приведенная ниже инструкция пропустит второе поле в файле.

LOAD DATA
TRUNCATE INTO TABLE T1
FIELDS TERMINATED BY ','
( field1,
  field2 FILLER,
  field3
)
...