[oracle] java.sql.SQLException: 索引中丢失 IN或OUT 参数::1
今天在开发调试时碰到了这个问题:
java.sql.SQLException: 索引中丢失 IN或OUT 参数::1,上网搜了一下,出错的范围还真是广泛,有:全角半角引起;参数过多;配置文件和数据库字段类型不一致;或是数据库的索引问题等等导致,一时还真不知道到底定位在什么问题上。
我的sql如下:
select *from mgmt_info_value pv
 where from_date>=@(fromDateBegin)
 and from_date<=@(fromDateEnd)
其中变量fromDateBegin和fromDateEnd是变量,时间类型的值,需要在程序中进行替换。
替换完之后的sql:
select *from mgmt_info_value pv
 where from_date>=2009-11-20 00:00:00
 and from_date>=2009-11-20 23:59:59
原因:fromDateBegin和fromDateEnd都是时间类型的变量,而替换后则替换成了字符串,所以是由于参数类型和数据库的类型不匹配导致的;替换内容需将字符串进行时间格式的转换:
select *from mgmt_info_value pv
 where from_date>=to_date('2009-06-04 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
 and from_date<=to_date('2009-06-04 00:15:59', 'yyyy-mm-dd hh24:mi:ss')
大功告成。
最后总结一下各位高手对索引中丢失 IN或OUT 参数的解决方法:
(1)首先,查索引有没有问题,如果没有索引,或是索引无问题;则
(2)仔细检查每个字段赋值的地方,类型是否与数据库字段类型匹配;是否为空;
转载:
java.sql.SQLException: 索引中丢失 IN或OUT 参数::x
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号