日期:2014-05-17  浏览次数:20733 次

关于oracle 乘法的判断问题 在线等...
select * from text_import where (cj1*cy1+ck1*cy1+cl1*cy1+cm*cy+cn1*cy1)<>cz1 

几个字段都是varchar2类型

报错为无效数字  这是为什么呢?
oracle select

------解决方案--------------------
引用:
select * from text_import where (cj1*cy1+ck1*cy1+cl1*cy1+cm*cy+cn1*cy1)<>cz1 

几个字段都是varchar2类型

报错为无效数字  这是为什么呢?


因为你的某一列里面含有非数字的值,比如空格,或者字母,或者逗号等等....
------解决方案--------------------
没一个字段都改成to_number(..)试试
------解决方案--------------------
引用:
Quote: 引用:

select * from text_import where (cj1*cy1+ck1*cy1+cl1*cy1+cm*cy+cn1*cy1)<>cz1 

几个字段都是varchar2类型

报错为无效数字  这是为什么呢?


因为你的某一列里面含有非数字的值,比如空格,或者字母,或者逗号等等....


+1 to_number
------解决方案--------------------
直接转换成数值型 肯定还是报错

问题的根源是  表中含有不是数字的字符串 这个需要怎么解决 是直接过滤 还是删除 还是把这些字段更新
 
------解决方案--------------------
引用:
select * from text_import where (cj1*cy1+ck1*cy1+cl1*cy1+cm*cy+cn1*cy1)<>cz1 

几个字段都是varchar2类型

报错为无效数字  这是为什么呢?


字符串只准是不允许 ++ -- 的,除非你的字符串为 ‘纯数字',不能含空格等等其他字符类型的。仔细检查下。
------解决方案--------------------
数据问题,与sql无关