最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

解决java.sql.SQLSyntaxErrorException:ORA-00936:缺失表达式

Javaweb 太平洋学习网 浏览 评论

javaweb项目报“Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式”错误,从SQLSyntaxErrorException这个单词就可以看出是我们mybatis mapper.xml文件里面的sql语句错误了,于是我检查了自己的mapper.xml文件,先看看我错误的sql语句。

 <select id="findExamResultByArr" parameterType="java.lang.Long" resultMap="BaseResultMap">
    select t.QUESTION_ID, t.MY_ANSWER,t.IS_RIGHT from TBL_EXAM_RESULT t
    where t.EXAM_ID in
    <foreach item="id" collection="array" open="(" separator="," close=")">>
      #{id}
    </foreach>
    and t.IS_RIGHT == 0
  </select>

Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式的意思就是说你缺失了一些符号或者是多了一些不必要的符号,从上面可以看出有两点错误,正确的语句应该是如下这样的。

 <select id="findExamResultByArr" parameterType="java.lang.Long" resultMap="BaseResultMap">
    select t.QUESTION_ID, t.MY_ANSWER,t.IS_RIGHT from TBL_EXAM_RESULT t
    where t.EXAM_ID in
    <foreach item="id" collection="array" open="(" separator="," close=")">
      #{id}
    </foreach>
    and t.IS_RIGHT = 0
  </select>

我的语句多了一个尖括号“>” 和一个等于号“=”,因此以后写sql语句的时候报ORA-00936: 缺失表达式错误,都是因为多了符号或少了符号。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2017/1123/398.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论