Ошибка ORA-00932 на Java

У меня есть заключение Dao.java класс для запуска SQL запросов

Она имеет

private String getCriteria(GsSrvyRepConclusion Conclusion, boolean isUpdateStatement) {
        String criteriaStatement = "";
if(Conclusion.getRecommendation() != null){
            statement += getConnectorStatement(criteriaStatement, isUpdateStatement) " CONCLUSION.recommendation =:recommendation";
        }

рекомендация определяется как тип данных CLOB в базе данных. Я просто знаю, что тип данных CLOB нельзя использовать со знаком "=" в запросе.

Но когда я заменяю знак равенства на "like", ошибка ORA-00932 превращается в ORA-00927, в которой отсутствует ошибка знака eqaul.

Можете ли вы дать мне представление о проблеме? Проблема может быть решена с помощью троичного оператора, но я не мог решить.

Заявление уже определено. Мне нужно только изменить;

CONCLUSION.recommendation =:recommendation

1 ответ

Решение
if(Conclusion.getRecommendation() != null){
            statement += getConnectorStatement(criteriaStatement, isUpdateStatement) " CONCLUSION.recommendation =:recommendation";
        }

должно быть написано как

 if(Conclusion.getRecommendation() != null){
            statement += getConnectorStatement(criteriaStatement, isUpdateStatement) + ((isUpdateStatement) ? " CONCLUSION.recommendation =:recommendation " : " CONCLUSION.recommendation like :recommendation ");
        }
Другие вопросы по тегам