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)

问题解决

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值