Я пишу SQL
SELECT ID
FROM NDA.K_FAKTURIER_KDF
WHERE FAKTURIER_KDF_KZ = ?
AND NVL(MANDANT, ' ') = (CASE ?
WHEN '01180311' THEN
'BUTLERS'
ELSE
' '
END)
В моей программе при запуске я получил ошибку
java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
Во время отладки я обнаружил, что компилятор Java выполняет запрос как
SELECT ID
FROM NDA.K_FAKTURIER_KDF
WHERE FAKTURIER_KDF_KZ = ?
AND NVL(MANDANT, ' ') = (CASE ?
WHEN 01180311 THEN
'BUTLERS'
ELSE
' '
END)`
Итак, Java-компилятор экранирует один код, и любой может сказать мне, как он будет работать правильно?