我收到错误"令牌长度超过最大允许长度258"当我运行以下控制文件
fields terminated by '|' trailing nullcols
(
numsus,
mnecau,
commod,
snsmvt,
typcon "CASE when :numsus =29
then
case when :mnecau ='s'
then
case when :snsmvt = 'c'
then 'RECP'
when :snsmvt = 'd'
then 'NLED'
end
when :mnecau = 'l'
then
case when :snsmvt = 'd'
then 'FAIL'
when :snsmvt = 'c'
then 'NOPYM'
end
end
END"
)
但是,如果我删除控制文件的下面部分,它可以正常工作
when :mnecau = 'l'
then
case when :snsmvt = 'd'
then 'FAIL'
when :snsmvt = 'c'
then 'NOPYM'
end
end
答案 0 :(得分:0)
你可以把所有这些都放到一个函数中并调用它。我可以建议创建一个与sqlldr相关的函数包:
...
typcon "sqlldr_lib.get_typcon(:numsus, :mnecau, :snsmvt)"
...
无论如何,它更干净,最好是封装代码,以便它可以重复使用,而且你只有一个地方可以维护代码。