oracle ---> ora 无效数字

 

因为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)

问题解决

 

你可能感兴趣的:(温故)