plsql里面执行正常,java运行报ORA-01722: 无效数字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了plsql里面执行正常,java运行报ORA-01722: 无效数字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1135字,纯文字阅读大概需要2分钟。
内容图文
![plsql里面执行正常,java运行报ORA-01722: 无效数字](/upload/InfoBanner/zyjiaocheng/476/137e0ccb16644f8b8a90081274d38f64.jpg)
贴代码:
<select id="getInfo" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
<isEqual property="Type" compareValue="02">
select a.*
from INFO a
where
a.TYPE= #Type#
</isEqual>
<isEqual property="Type" compareValue="01">
select a.*
from INFO a
where
a.TYPE= #Type#
and to_number(a.END) >= to_number(#No#)
</isEqual>
</select>
当Type为01的时候报错:ORA-01722: 无效数字,,目标锁定and to_number(a.END) >= to_number(#No#)
但是将SQL复制到数据库执行的时候是可以的
问题原因:
在Type为02的时候a.END里面包含字符,Type为01的时候a.END里面只有数字
因为oracle条件是从下往上筛选的,所以to_number(a.END)在a.TYPE= #Type#之前,导致无效数字错误
处理方式:
将a.TYPE= #Type#条件放到最后
求解:
将SQL复制到数据库执行的时候不管条件是如何顺序都是可以的
如果有人知道的还请指教
plsql里面执行正常,java运行报ORA-01722: 无效数字
标签:hashmap 代码 number 原因 util 筛选 result 报错 sel
本文系统来源:http://www.cnblogs.com/zhouyeqin/p/6438834.html
内容总结
以上是互联网集市为您收集整理的plsql里面执行正常,java运行报ORA-01722: 无效数字全部内容,希望文章能够帮你解决plsql里面执行正常,java运行报ORA-01722: 无效数字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。