我正在使用控制文件将数据加载到运行在Windows 7计算机上的Oracle 11g中。我在使用以下case语句加载数据时遇到问题,我尝试了不同的方法,无法成功。有什么建议吗? (在日志文件中,错误是:
记录1:拒绝 - 表员工出错,列blah。 ORA-00905:缺少关键字
记录2:拒绝 - 表员工出错,列blah。 ORA-00905:缺少关键字,.....等等。
和守则是:
Options (skip=1)
load data
APPEND INTO TABLE employee
fields terminated by "\t"
TRAILING NULLCOLS
(
a,
b,
c,
d,
blah "CASE WHEN :b='k' THEN 'LPAD(:blah,6,'0')'
WHEN :b='s' AND :d='p' THEN 'LPAD(:blah,11,'0')'
WHEN :b='s' AND :d='pr' THEN 'LPAD(:blah,8,'0')'
END",
g,
h,
i
)
答案 0 :(得分:0)
您已使用单引号包围LPAD
来电,这就是为什么它们不起作用的原因。尝试将表达式更改为
blah "CASE WHEN :b='k' THEN LPAD(:blah,6,'0')
WHEN :b='s' AND :d='p' THEN LPAD(:blah,11,'0')
WHEN :b='s' AND :d='pr' THEN LPAD(:blah,8,'0')
END",
...