个人认为:ORA-00907是在oracle没什么错误可以报,还不能执行时的一个兜底的报错。
这个ora报错本身就是一个笑话,所以要是要到这个报错,那么就先复制语句到普通执行连接窗口中,看看能不能执行,如果语句在普通连接中能执行,那么就说明语句本身没有错误,然后再去找连接,我记得在什么地方看过OLEDB的连接方式不认识casewhen,在找找连接方式,如果还是不行,那就基本没办法了。
当然如果复制的部分不能在窗口执行,那就说明语句本身就是错误的,那就要自己找找了。
另外在shell中写sql,我记得好像有一个单引号的转义问题,好久没写了,记得不是很清楚,你也可以试试看。