今天碰到同样的SQL,只是连接DB的方式不同而造成以下语句不能正常执行。

/**//* Formatted on 2007/06/06 10:24 (Formatter Plus v4.8.7) */
SELECT ID, LEVELS, NVL (NAME, 'ゼ㏑') NAME, url, style, owner, seq,
(CASE LEVELS
WHEN 'B'
THEN SUBSTR (ID, 1, 2)
ELSE SUBSTR (ID, 3, 2)
END
) AS PARENT,
ATTRIBUTE
FROM a4rsys_menu
WHERE SUBSTR (ID, 1, 2) = '18'
AND (LEVELS = 'B' OR (LEVELS = 'C' AND ATTRIBUTE NOT IN ('D', 'T')))
ORDER BY LEVELS, PARENT, seq, SUBSTR (style, 1, 1)















连接DB方式:
成功:Application("SYSDB") = "Provider=MSDAORA.1;User ID=MCSAP1;Password=MCSAP1;data source=PNBRS"
失败:Application("MADB") = "Provider=OraOLEDB.Oracle.1;User ID=MASAP1;Password=MASAP1;data source=PNBRS"
总结:
OleDb 方式不支持 CASE When Function