Import 使用sqlldr正确跳过空字段
我需要将选项卡分隔的文件上载到现有Oracle表中。有些记录在中间有空字段(不是以前已经回答过的整列),而且我不能让SqLDR正确地加载记录后的空字段。考虑示例文件: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
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“,因为不需要它