Oracle11g SQLLDR控制文件中的多个case语句
我正在使用一个控制文件将数据加载到运行在Windows7机器上的Oracle11g中。我无法用下面的case语句加载数据,我尝试了不同的方法,但没有成功。有什么建议吗?(在日志文件中,错误为: 记录1:已拒绝-表employee中的错误,列blah。 ORA-00905:缺少关键字 记录2:已拒绝-表employee中的错误,列blah。 ORA-00905:缺少关键字,…等等 代码是:Oracle11g SQLLDR控制文件中的多个case语句,oracle11g,etl,sql-loader,case-statement,Oracle11g,Etl,Sql Loader,Case Statement,我正在使用一个控制文件将数据加载到运行在Windows7机器上的Oracle11g中。我无法用下面的case语句加载数据,我尝试了不同的方法,但没有成功。有什么建议吗?(在日志文件中,错误为: 记录1:已拒绝-表employee中的错误,列blah。 ORA-00905:缺少关键字 记录2:已拒绝-表employee中的错误,列blah。 ORA-00905:缺少关键字,…等等 代码是: Options (skip=1) load data APPEND INTO TABLE em
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
)
您已经用单引号包围了
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",
...