0

我有一个结论Dao.java 类来运行 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,它缺少 eqaul 符号错误。

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

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

CONCLUSION.recommendation =:recommendation
4

1 回答 1

0
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 ");
        }
于 2017-12-12T11:07:07.237 回答