写sql遇到了一个invalid number错误

sh09409 2012-04-17 09:52:29
语句select * from A,V where v.SWGLM = a.SWGLM 报invalid number
A是一个表,SWGLM是number(15)

B是一个视图
select E.SWGLM from E
union all select F.SWGLM from F
union all select to_char(G.SWGLM) from G
E.SWGLM是varchar2(32)
F.SWGLM是varchar2(32)
G.SWGLM是number(15)

我写成
select * from A,V where v.SWGLM = to_char(a.SWGLM)
select * from A,V where to_char(v.SWGLM) = to_char(a.SWGLM)
select * from A,V where to_number(v.SWGLM) = a.SWGLM
都没有用
...全文
9494 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sh09409 2012-04-17
  • 打赏
  • 举报
回复
我不能把数据过滤了。我希望以字符形式比较,就可以解决问题。转数字不适合我现在的情况。
数据是生产数据,不能改的。
啊彪123 2012-04-17
  • 打赏
  • 举报
回复
写个方法把非数字型字符过滤即可!
create   or   replace   function   isNumber(p_in   varchar2)   return   boolean   as   
i number;
begin
i:=to_number(p_in);
return true;
exception
when others then
return false;
end ;
sh09409 2012-04-17
  • 打赏
  • 举报
回复
数据是不能修改的,所以可不可以不让他转换成数字,就是以字符形式比较呢?
啊彪123 2012-04-17
  • 打赏
  • 举报
回复
v中有不能转成数字的字符!

with t as(
select 1001 id,'1000'num,'1002 ' name from dual
union all select 1002,'1001','1003 ' from dual
union all select 1003,'1002','1004 ' from dual
union all select 1004,'1003','1005 ' from dual
)
--select a.* from t a,t b where a.id=b.num;
select a.* from t a,t b where a.id=b.name;
sh09409 2012-04-17
  • 打赏
  • 举报
回复
没有B,写错了,对b的描述就是V
yinan9 2012-04-17
  • 打赏
  • 举报
回复
a,v的字段类型呢?和B有什么关系?
sh09409 2012-04-17
  • 打赏
  • 举报
回复
写错了。
应该V是一个视图
select E.SWGLM from E
union all select F.SWGLM from F
union all select to_char(G.SWGLM) from G
E.SWGLM是varchar2(32)
F.SWGLM是varchar2(32)
G.SWGLM是number(15)
simula1314 2012-04-17
  • 打赏
  • 举报
回复
是不是你的版本问题啊,测试了一把是正常的啊,pl/sql developer 10G 会自动转换的
啊彪123 2012-04-17
  • 打赏
  • 举报
回复
一个是32位,一个15位,当然比较出错了
我心飞翔 2012-04-17
  • 打赏
  • 举报
回复
问题很简单,就是存在字符串型的数据,在转换为number时,未成功转换,也就是说这个字符串不是一个有效的数字字符串。

所以这个问题,无论怎么做转换都不能解决,只能查看数据,然后修改数据。
要不就都转换成字符串,应该是没有问题的。
「已注销」 2012-04-17
  • 打赏
  • 举报
回复
V的SWGLM是什么

17,382

社区成员

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

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