Java 上的 ORA-00932 错误

ORA-00932 error on Java

我有一个 conclusionDao.java class 到 运行 sql 的查询

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

recomandation 在数据库中被定义为 CLOB 数据类型。我只知道 CLOB 数据类型不能在查询中使用“=”符号。

但是当我用 "like" 替换等号时,ORA-00932 错误变成了 ORA-00927 缺少等号错误。

你能给我一些关于这个问题的想法吗?使用三元运算符可以解决问题,但我无法解决。

声明已经定义。我只需要改变;

CONCLUSION.recommendation =:recommendation
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 ");
        }