更新数据库出错!表或视图不存在

时间:2018-05-22 07:56:57

标签: jquery database mybatis

我有这个查询

<update id="updateRow">
    update
      ROW
    set
      DISPLAY_ID = #{displayId}
    <where>
      <include refid="rowCriteria" />
    </where>
</update>

 <sql id="rowCriteria">
  <if test="criteria.displayId} != null">
     DISPLAY_ID=#{criteria.displayId}
  </if>
  <if test="criteria.id != null">
    and ID=#{criteria.id}
  </if>
 </sql>

以及执行的地方

 Preparing: update ROW set DISPLAY_ID = ? WHERE ID=? 

 Parameters: 72312(Long), 72991(Long)

我收到此错误

该错误可能涉及defaultParameterMap

设置参数

时发生错误

SQL:更新ROW设置DISPLAY_ID =? WHERE ID =?

原因:java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在

但如果我删除&#39;和&#39;来自标准ID

 <sql id="rowCriteria">
  <if test="criteria.displayId} != null">
    DISPLAY_ID=#{criteria.displayId}
  </if>
  <if test="criteria.id != null">
    ID=#{criteria.id}
  </if>
 </sql>

查询运行正确并执行更新

我的问题是,如果我在条件中有和密钥,有时候我会收到错误,有时候更新会正常运行?

1 个答案:

答案 0 :(得分:0)

两件事:

  • 删除超出的}

  • 使用AND为每个条件添加前缀。 &lt;在哪里&gt;标签将永远删除第一个。

           AND DISPLAY_ID =#{criteria.displayId}           和ID =#{criteria.id}