Oracle sqlldr TRAILING NULLCOLS требуется, но почему?

У меня возникла непонятная проблема с sqlldr, которая меня беспокоит. Мой контрольный файл выглядит примерно так:

load data
infile 'txgen.dat'
into table TRANSACTION_NEW
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
( A,
  B,
  C,
  D,
  ID "ID_SEQ.NEXTVAL"
)

Данные выглядят примерно так:

a,b,c,
a,b,,d
a,b,,
a,b,c,d

Если я не вставляю TRAILING NULLCOLS, я получаю ошибку «столбец не найден до конца логической записи». Но хотя некоторые из столбцов имеют значение NULL, все запятые присутствуют, поэтому я не вижу причин, по которым sqlldr неправильно интерпретирует входной файл и не доходит до конца, где он генерирует идентификатор из последовательности базы данных.

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

У меня все работает, я просто хочу понять, ПОЧЕМУ!?!

18
задан orbfish 12 October 2010 в 17:21
поделиться