Ошибка 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 ");
}