开发者社区> 问答> 正文

执行表达式错误

Assert.assertEquals(true,SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL,"3>2&&2>1"));

执行不成功!

原提问者GitHub用户gloriawish

展开
收起
山海行 2023-07-05 22:07:12 98 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在调用SQLEvalVisitorUtils.evalExpr方法时,可能会遇到各种错误,例如"Syntax error"、"Unsupported operation"等错误。以下是一些可能导致该方法执行失败的原因和解决方法:

    SQL语法错误:当SQL表达式中存在语法错误时,evalExpr方法会返回Syntax error错误。解决方法是检查SQL表达式的语法是否正确,并确保使用的是正确的数据库类型和版本。

    不支持的操作:当SQL表达式中存在不支持的操作时,evalExpr方法会返回Unsupported operation错误。解决方法是检查SQL表达式中使用的操作是否被支持,并确保使用的是正确的数据库类型和版本。

    数据类型错误:当SQL表达式中存在数据类型错误时,evalExpr方法会返回Type mismatch错误。解决方法是检查SQL表达式中使用的数据类型是否正确,并确保使用的是正确的数据库类型和版本。

    数据库驱动错误:当使用错误的数据库驱动或版本时,evalExpr方法可能会返回各种错误。解决方法是检查使用的数据库驱动是否正确,并确保与目标数据库的版本匹配。

    2023-07-29 23:08:06
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    这条控制台输出表示阿里巴巴的Druid连接池组件成功初始化了数据源(dataSource-1)。Druid是一种开源的数据库连接池,它提供了许多优化和监控功能,用于管理数据库连接。该输出消息表明Druid成功初始化、准备好接受和处理连接请求。

    2023-07-07 15:05:51
    赞同 展开评论 打赏
  • 已merge修复代码

    原回答者GitHub用户yakolee

    2023-07-06 12:44:28
    赞同 展开评论 打赏
  • 根据您提供的代码,您正在使用SQL解析器工具类SQLEvalVisitorUtils执行一个表达式判断。然而,您提供的代码中的表达式语法是不正确的。

    在Java中,逻辑与操作符是&&,而不是and。因此,您需要将您的表达式中的and替换为&&,如下所示:

    Assert.assertEquals(true, SQLEvalVisitorUtils.evalExpr(JdbcConstants.MYSQL, "3 > 2 && 2 > 1"));
    

    使用正确的语法后,您应该能够成功执行表达式判断。请确保您提供的表达式符合Java语法规则,并且使用适当的操作符和语法来执行表达式判断。

    2023-07-06 08:44:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载