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)
问题解决
提示代码是 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)
问题解决
相关文章推荐
- Oracle 参数化更新数据时报错:Oracle ORA-01722: 无效数字
- Oracle ORA-01722: 无效数字 处理方法
- ORACLE-023:令人烦恼的 ora-01722 无效数字
- ORACLE-023:令人烦恼的 ora-01722 无效数字
- [Oracle]查看SQL的执行计划 - AUTOTRACE,遇到错误ORA-00904: "OTHER_TAG": 标识符无效
- Spring+Ibatis>>Oracle>>ORA-0060>>arguments: [kkslgbv0]错误解决办法
- oracle ORA-01722无效数字
- Oracle Error:ORA-01465: 无效的十六进制数字
- PL/SQL那点事-->SqlSession operation; SQL []; ORA-01722: 无效数字
- oracle ORA-01722:无效数字 记录
- SP2-0667: Message file sp1<lang>.msb not found SP2-0750: You may need to set ORACLE_HOME to your Ora
- oracle排序报错“ORA-01722: 无效数字”处理
- Oracle 关于报错"ORA-01747: user.table.column, table.column 或列说明无效"的终极解决办法
- oracle to_namber之后报ora-01722:无效数字
- oracle错误提示:"ORA-00911: 无效字符 Unable to execute statement"
- 从oracle 11g导出->12c 导入 ,遇到ORA-39213: Metadata processing is not available
- oracle 无效数字ORA-01722:
- Oracle错误: ORA-01722 无效数字
- Oracle Error:ORA-01465: 无效的十六进制数字【解决办法】
- 【Oracle】ORA-01722:无效数字(控制文件最后一个字段)