ORA-00909:参数个数无效
大概率是SQL格式有误,缺少括号,缺少逗号等使SQL参数少识别一个。
SELECT case
when (to_date(#{accDate}, 'yyyy-mm-dd') < add_months(to_date(#{startDate}, 24)) THEN '1'
ELSE '2' END FROM DUAL
修改为
SELECT case
when (to_date(#{accDate}, 'yyyy-mm-dd') < add_months(to_date(#{startDate}, 'yyyy-mm-dd'), 24)) THEN '1'
ELSE '2' END FROM DUAL
正常的nvl函数应该是nvl(String,replace_String), 若写成了 nvl(String replace_String),没有写中间那个逗号,也会报ORA-00909:参数个数无效。