sqlldr导入时,如果某字段是空值,这行就导入,如果是非空,该行就不导入,请教一下大家应该怎么写when子句load data
infile 'ACCOUNT_VPMN_9920090202080142.4'
Append into table tmp_DR_VPMN_QZ
WHEN (TRADEMARK = 'NULL')
fields terminated by ';'
TRAILING NULLCOLS
(
TRADEMARK ,
SERVICE_ID ,
DR_TYPE ,
我是这么写的,错误
记录 1: 被废弃 - 所有 WHEN 子句出现错误。
记录 2: 被废弃 - 所有 WHEN 子句出现错误。
就是所有这个字段为空的记录都没导入进去,请教大家该怎么写
infile 'ACCOUNT_VPMN_9920090202080142.4'
Append into table tmp_DR_VPMN_QZ
WHEN (TRADEMARK = 'NULL')
fields terminated by ';'
TRAILING NULLCOLS
(
TRADEMARK ,
SERVICE_ID ,
DR_TYPE ,
我是这么写的,错误
记录 1: 被废弃 - 所有 WHEN 子句出现错误。
记录 2: 被废弃 - 所有 WHEN 子句出现错误。
就是所有这个字段为空的记录都没导入进去,请教大家该怎么写
预期值是加引号的字符串或hex(十六进制) 标识符,而实际值是"NULL"。
WHEN ( TRADEMARK = NULL)
^
哪位老大可以给我解惑?
我没用过 不过看这个提示 我觉得你试试 TRADEMARK = "NULL"
TRADEMARK SERVICE_ID DR_TYPE
1 50006 200
50006 201 sqlldr结果:
记录 1: 被废弃 - 所有 WHEN 子句出现错误。
记录 2: 被废弃 - 所有 WHEN 子句出现错误。
赞成这种方法,不推荐用WHEN这样会降低导出的效率,如果表很大的话,是很不理想的!
infile 'ACCOUNT_VPMN_9920090202080142.4'
Append into table tmp_DR_VPMN_QZ
WHEN nvl(TRADEMARK,'XXXXXXXXX') = 'XXXXXXXXX' --这里的思路就是用一个特殊字符串来实现为空的条件为真,只要这个字符串不会出现在你的记录中
fields terminated by ';'
TRAILING NULLCOLS
(
TRADEMARK ,
SERVICE_ID ,
DR_TYPE ,