Oracle数据库查询,一直报错ORA-01722: 无效数字,谁帮忙改写一下?

fengbonianshao 2012-11-25 07:11:12
Oracle数据库查询请问:

select * from A,B where A.CourseNum=B.billon;其中CourseNum为number类型,billion为varchar2类型,一直报错ORA-01722: 无效数字,谁帮忙改写一下?

...全文
95075 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymymrydzh1 2015-06-23
  • 打赏
  • 举报
回复
引用 8 楼 zhangxiaofeng1991 的回复:
肯定报错,不报错才怪 你要自己解决才好,教你一招 把ORA-01722放到google上去查询
我就是用你说的方法来到了这里
章三丰 2012-12-02
  • 打赏
  • 举报
回复
肯定报错,不报错才怪 你要自己解决才好,教你一招 把ORA-01722放到google上去查询
Doson 2012-12-02
  • 打赏
  • 举报
回复
引用 3 楼 asi_241 的回复:
select * from A,B where to_char(A.CourseNum)=B.billon,顺便说一下,哥们,你这表设计的有问题啊。这应该是外键关系啊,怎么数据类型都不一样呢。
jieouyang 2012-11-30
  • 打赏
  • 举报
回复
这个是类型转换问题: select * from A,B where A.CourseNum=B.billon; 其中CourseNum为number类型,billion为varchar2类型。 假如b.billion全部都是number就没有问题。 select * from A,B where A.CourseNum=字符串,但是字符串能够转为数字的,就没有问题。 select * from A,B where B.billon=数字,则如果B.billon存的都是可以转为数字的,则没问题。但是如果B.billon存的有一个是不可以转为数字的,则有报ORA-01722: 无效数字异常。
xingfuzhuzi1314 2012-11-27
  • 打赏
  • 举报
回复
这表设计的有问题吧,主外键关系字段类型都不一样, 用to_char转换之后试试,或者编辑一个表,使其和另一个字段类型对应吧!
linwaterbin 2012-11-25
  • 打赏
  • 举报
回复
number和varchar2 一个数字 一个字符
asi_241 2012-11-25
  • 打赏
  • 举报
回复
select * from A,B where to_char(A.CourseNum)=B.billon,顺便说一下,哥们,你这表设计的有问题啊。这应该是外键关系啊,怎么数据类型都不一样呢。
物润声无 2012-11-25
  • 打赏
  • 举报
回复
类型不匹配,需要类型转换,函数:to_char()转换成字符, to_num()转换成数字
jdsnhan 2012-11-25
  • 打赏
  • 举报
回复
B.billon有不是数字的内容,做强制转换时出错了。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧