+ -
当前位置:首页 → 问答吧 → 查表时出错

查表时出错

时间:2011-12-19

来源:互联网

SELECT YYSLX,JZMC,JD,WD,XQ
FROM YIDONG_PT
WHERE JD !='UNDEFINED' AND SQRT(POWER(TO_NUMBER(JD)-120.60845,2)+POWER(TO_NUMBER(WD)-29.99588,2))<=0.005192000166144005
报错:ORA--1722:无效数字
但是换成0.22以上的数就对了,公式是求距离的,但是查其它的表时是对的,这个是移动的,其它两个是电信和联通,其它两表的JD和WD值无undefined,这个表的值有undefined值,字段都是VARCHAR2

作者: yezhimengyu   发布时间: 2011-12-19

JD的值是不是有字符串的?不都是数字吧?
有字符串就不行。比如说你执行下面语句,就会报ORA-01722: invalid number:
select to_number('aa') from dual;

作者: yixilan   发布时间: 2011-12-19

值有undefined值

这就是原因了.

如果没,就默认0,或其他什么默认值.

作者: liuqian4243   发布时间: 2011-12-19

用decode 函数转成数字试试!

作者: cutebear2008   发布时间: 2011-12-19