Import 使用sqlldr正确跳过空字段

Import 使用sqlldr正确跳过空字段,import,format,sql-loader,Import,Format,Sql Loader,我需要将选项卡分隔的文件上载到现有Oracle表中。有些记录在中间有空字段(不是以前已经回答过的整列),而且我不能让SqLDR正确地加载记录后的空字段。考虑示例文件: ID-> col1-> col2-> col3 rec1-> 1.28-> 2.56-> 5.12 rec2-> 1.28-> -> rec3-> -> -> 5.12 以及以下控制文件upload.ctl: OPTIONS (SKIP

我需要将选项卡分隔的文件上载到现有Oracle表中。有些记录在中间有空字段(不是以前已经回答过的整列),而且我不能让SqLDR正确地加载记录后的空字段。考虑示例文件:

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似乎将连续的制表符识别为一个制表符。我怎样才能防止呢?
谢谢你检查我的新手问题

它没有将选项卡视为分隔符。将字段终止行更改为:

fields terminated by X'09' optionally enclosed by '"'
并从每个列条目中删除“终止于”\t“,因为不需要它