mybatis java.sql.SQLException: ORA-00907: 缺失右括号

转载 2015年11月17日 22:35:10

mybatis java.sql.SQLException: ORA-00907: 缺失右括号

url: http://flyeagle.iteye.com/blog/1883980

2013-06-07 16:42

 在使用spring+mybatis进行应用开发时,使用了mybatis的动态SQL,添加动态查询语句:

Xml代码  收藏代码
  1. <select id="getSpasDataLogList"  resultType="com.xxx.xxx.xxxBean" resultMap="spasDataLogMap">  
  2.      <![CDATA[  
  3.       select * from t_table where datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd') 
  4.        <if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if> 
  5.        ]]>   
  6. </select>  

 添加动态查询语句: 

Xml代码  收藏代码
  1. <if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>   

   报java.sql.SQLException: ORA-00907: 缺失右括号  错误。去除

Xml代码  收藏代码
  1. <if test="datafrom!= null and datafrom!= ''"> AND a.datafrom like #{datafrom} </if>   

 后可以正常执行,原来添加

Xml代码  收藏代码
  1. <![CDATA[ ]]>   

后解析器不对它进行解析<if>不会当mybatis的标签解析,而是以大于符号和小于符号进行解析,所以报错。去除

Xml代码  收藏代码
  1. <![CDATA[ ]]>   

但是,去除<![CDATA[ ]]> 后,发现

Xml代码  收藏代码
  1. datetime > #to_DATE(#{startDate}, 'yyyy-mm-dd')  

 

又报错,需要对大于符号进行转义,修改成:

Xml代码  收藏代码
  1. datetime &gt; #to_DATE(#{startDate}, 'yyyy-mm-dd')  

问题解决。

转义表:

> &gt; 大于
< &lt; 小于
& &amp;
>= &gt;= 大于等于
<= &lt;= 小于等于

 

 

相关文章推荐

ORA-00907: 缺失右括号问题整理解决

ORA-00907: 缺失右括号前言        最近在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了“ORA-00907: 缺失右括号”的问题,但是如果直接把sql语句直接在数据库...
  • xuemoyao
  • xuemoyao
  • 2016年01月21日 21:42
  • 10779

sql语句正确,但是报错java.sql.SQLSyntaxErrorException ORA-00907: 缺失右括号

sql语句如下,在oracle中带入参数能正常执行,在java程序中则报错java.sql.SQLSyntaxErrorException ORA-00907: 缺失右括号 select re....
  • hgg923
  • hgg923
  • 2014年11月27日 17:49
  • 2156

MyBatis Sql语句中的转义字符

1、在xml的sql语句中,不能直接用大于号、小于号要用转义字符 如果用小于号会报错误如下: org.apache.ibatis.builder.BuilderException: Error cre...

mybatis查询sql中in条件使用(foreach)

foreach属性主要有item,index,collection,open,separator,close。 1、item表示集合中每一个元素进行迭代时的别名, 2、index指定一个名字,用于...

java.sql.SQLException: ORA-00917: 缺失逗号

在写一个jdbc链接Oracle操作数据库的小测试时, 遇到 java.sql.SQLException: ORA-00917: 缺失逗号 这个错误信息不只是缺了逗号,还可以是少一个括号, 或者缺了单...

java.sql.SQLException: ORA-00936: missing expression

java.sql.SQLException: ORA-00936: missing expression JDBC is very straightforwa...

java.sql.SQLException: ORA-01841

1、错误描述 body = (null) clientId = "DB719904-1E0C-35DC-725D-86ABCF2B6EEC" correlationId = "CC0B5A6...

java.sql.SQLException: ORA-01000: 超出打开游标的最大数 解决方法

java.sql.SQLException: ORA-01000: 超出打开游标的最大数 解决方法 先看有问题的代码  查看复制到剪切板打印 import java.sql.Conn...

java.sql.SQLException: ORA-28000: the account is locked

1、现象:项目启动时报了“the account is locked”–用户账号被锁2、查询oracle相关文档,用户账户被锁可能的产生原因如下: 1. 尝试多次登录未成功(可能密码不正确); 2....

Caused by: java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000解决方案

这个原因在于Oracle语法限制,in内数量必须小于1000,故采取满1000分割用OR连接,下面是解决方案: /** * Example: List sqhlist=[''aa''"bb""c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis java.sql.SQLException: ORA-00907: 缺失右括号
举报原因:
原因补充:

(最多只允许输入30个字)