我正在寻找一种使用 SQLLDR 进行选择性加载的方法。源文件采用“管道分隔”格式。
我知道如果源位于预定义的位置,有办法做到这一点。此处使用 WHEN 和 POSITION 关键字对其进行了解释。
如果源文件是“管道或制表符”分隔的,我该怎么办?
我正在寻找一种使用 SQLLDR 进行选择性加载的方法。源文件采用“管道分隔”格式。
我知道如果源位于预定义的位置,有办法做到这一点。此处使用 WHEN 和 POSITION 关键字对其进行了解释。
如果源文件是“管道或制表符”分隔的,我该怎么办?
我不确定您所说的“选择性加载”是什么意思?
但是如果您只是询问如何加载每列用管道分隔的文件,然后使用FIELDS TERMINATED BY '|'
控制文件中的选项。
有关详细信息和示例,请参见 SQL*Loader 手册中的“变量记录格式”一章:http:
//download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_concepts.htm#sthref476
根据您使用的 SQLLDR 版本,您可以使用关键字 FILLER 跳过文件中的字段。
以下指令将跳过文件中的第二个字段。
LOAD DATA
TRUNCATE INTO TABLE T1
FIELDS TERMINATED BY ','
( field1,
field2 FILLER,
field3
)
LOAD DATA
INFILE 'c:\myfile.txt'
TRUNCATE INTO TABLE T1
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS (field1, field2 , field3, field4)