Мне нужно загрузить файл с разделителями табуляции в существующую таблицу Oracle. В некоторых записях есть пустые поля (а не целые столбцы, как было сказано ранее) в середине, и я не могу заставить sqlldr правильно загружать поля, следующие за пустым для записи. Рассмотрим пример файла:Правильно пропуская пустые поля с sqlldr
ID-> col1-> col2-> col3
rec1-> 1.28-> 2.56-> 5.12
rec2-> 1.28-> ->
rec3-> -> -> 5.12
и следующий upload.ctl файл управления:
OPTIONS (SKIP=1)
load data infile 'file.tab'
replace into table TARGET_TABLE
fields terminated by "\t" optionally enclosed by '"'
TRAILING NULLCOLS
(ID char terminated by "\t",
col1 terminated by "\t",
col2 terminated by "\t",
col3 terminated by "\t")
приведет к следующей загрузке:
+------+------+------+------+
|ID |col1 |col2 |col3 |
+------+------+------+------+
|rec1 |1.28 |2.56 |5.12 |
|rec2 |1.28 |(null)|(null)|
|rec3 |5.12 |(null)|(null)|
пустые поля в файле для загрузки заполнены с правильным количеством символов табуляции, но sqlldr, кажется, распознает последовательные вкладки как один. Как я могу это предотвратить? Спасибо, что посмотрели вопрос моего новичка!