您的位置:首页 > 数据库 > Oracle

oracle ---> ora 无效数字

2013-05-20 19:33 423 查看
因为everynote 官方导致需要重新修改密码才能登录,并且莫名奇妙的从系统里面删除了后就懒得安装,只好在博客里面记录下平常遇到的问题。

提示代码是 ORA-01722 无效数字 其实根据提示代码的错误可以很好的理解,就是 无效数字,不管是Java里面还是oracle里面,String 转 int或者varchar 转 number,同样反过来也一样。

我遇到的问题是子查询嵌套。SQL如下:sql我把多余的都删除了,只留下部分做说明。子查询分开执行都没有问题,组合起来执行就报错

SELECT *

FROM JBPM4_TASK TA

LEFT JOIN JBPM4_PARTICIPATION JP

ON TA.DBID_ = JP.TASK_

WHERE JP.USERID_ IN

(SELECT TU.ID

FROM TB_USER TU

WHERE TP.ID = TUP.POSTID

AND TU.ID = TUP.USERID

AND TOR.ID = TU.DEPARTMENT

AND TP.NAME LIKE '%%'

AND TOR.PATH LIKE '%%')

AND TA.STATE_ = 'OPEN'

ORDER BY ID

问题的原因是: JP.USERID_ 是varchar类型的,TU.ID是number类型的,这样嵌套出来就报 无效数字 错误,解决办法,使用TO_CHAR转换一下就可以

SELECT TO_CHAR(TU.ID)

问题解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: