友
我已经向我发送了一个客户端数据,请求将字段以“|”结尾
问题是,一些字段值也有“|”作为我们需要保留的角色。我的数据文件中的问题行看起来像这样(地址中的“|”“1 | 34-36 ......”是问题)
ID | Address |UPDATEDATE
1423 | 1|34-36 White Street |02/01/199
我的.ctl看起来像这样
options(errors=1000)
load data
into table client_address APPEND
fields terminated by '|'
TRAILING NULLCOLS
(
ID INTEGER EXTERNAL,
答案 0 :(得分:1)
如果数据文件中的所有字段都是宽度对齐的,则可以使用此.ctl文件:
load data
into table client_address APPEND
fields terminated by '~'
TRAILING NULLCOLS
(
line BOUNDFILLER,
ID "to_number(trim(substr(:line,1,8)))",
Address "trim(substr(:line,10,26))",
UPDATEDATE "to_date(trim(substr(:line,37)),'mm/dd/yyyy')"
)
编辑:
如果字段不是宽度对齐的,但Address
是唯一可以在其中包含'|'
char的字段,则使用此.ctl文件
load data
into table client_address APPEND
fields terminated by '~'
TRAILING NULLCOLS
(
line BOUNDFILLER,
ID "to_number(trim(regexp_substr(:line,'^[^|]*')))",
Address "trim(regexp_replace(:line,'^[^|]*\|(.*)\|[^|]*$','\1'))",
UPDATEDATE "to_date(trim(regexp_substr(:line,'[^|]*$')),'mm/dd/yyyy')"
)