索引中丢失 IN 或 OUT 参数:: 1

今天在用ibatis执行查询时,报下面错误:

Cause: java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1;

不知道什么原因,网上搜索了一下,好像是传参数的问题。我的sqlmap文件如下:

sql 代码
  1. <select id="advancedQuery" parameterClass="java.lang.String" resultMap="GrantLogResult">
  2.     SELECT t1.*,t2.user_name as accreditor_user_name,
  3.            t2.real_name as accreditor_real_name,t3.name as role_name 
  4.     FROM(   
  5.         $value$   
  6.     )t1, user_basic_info t2, role_info t3   
  7.     WHERE  t2.id(+)=t1.accreditor   
  8.     AND t3.id(+)=t1.grant_role   
  9. </select>  

然后传的参数是一条select语句,格式大概如下:

sql 代码
  1. select * from authorization_info 
  2. where authorize_time between t1 and t2 
  3. order by authorize_time  desc  

t1 和 t2是程序生成的Timestamp类型的值。

搞了半天之后,问题依旧,没有办法之下,改变了传入参数的select语句写法,如下:

sql 代码
  1. select * from authorization_info 
  2. where to_char(authorize_time,'yyyy-MM-dd') >= 't1' 
  3. and to_char(authorize_time,'yyyy-MM-dd') <='t2' 
  4. order by authorize_time  desc     

这样写了之后问题解决了,但是还是不知道其中的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值