oracle数据加载工具(ODI)的Bind标签(“:”)和SQL语句之间的冲突
适用于:
Oracle数据加载工具 – 版本:3.2.03.01及以上【发行版:3.2.03及以上】
本文档的说明适用于所有平台
目标
问题1:使用返回字符”:”的ODI变量会导致在执行的时候出现“缺少参数”的错误信息。这个变量的刷新语句是:
select to_char (#theProject.theVariable, 'dd/mm/yyyy hh24:mi:ss') from dual
问题2:当使用的字符”:”不在一个字符串中时出现语法错误
例如,在informix数据库中ODI变量的刷新语句是
select count(*) from myTable where myCol < datetime(99-07-01 08:45:01) year to second
解决方案:
字符”:”是用来解释ODI BIND变量的特殊标签。解决以上问题的方法如下:
问题1的解决方法:使用简单引用
例如
将语句
select to_char (#theProject.theVariable, 'dd/mm/yyyy hh24:mi:ss') from dual
改为:select to_char ('#theProject.theVariable', 'dd/mm/yyyy hh24:mi:ss') from dua
就可以避免这种问题的发生
问题2的解决方法:使用转义字符(“\”)来避免出现字符”:”
例如
将语句
select count(*) from myTable where myCol < datetime(99-07-01 08:45:01) year to second
改为:select count(*) from myTable where myCol < datetime(99-07-01 08\:45\:01) year to second
就可以避免这种问题的发生