日期:2014-05-16 浏览次数:20508 次
今天在执行一个sql语句时,发现一只报 无效数字
?
?
SELECT ddtime,dcprovince,dctffee,to_number(dctffee) FROM
KS_OSS002 WHERE dntftype<>1 and ddtime>=TO_DATE('2012-02-14 00:00:00','yyyy-mm-dd hh24:mi:ss') AND ddtime<=TO_DATE('2012-02-14 09:59:59','yyyy-mm-dd hh24:mi:ss')
and to_number(dctffee)>=0
?
?
如果where条件中的to_number(dctffee)去掉后,就不会报错。后来发现原来是数据库中 有条记录dctffee字段填写的是全角的数字,本来以为 只要select 中的?to_number(dctffee)能出来就说明没有问题了,其实 如果没有最后的 to_number(dctffee)>=0条件,那条有问题的记录
没有包含在结果集里,但是最后加上and to_number(dctffee)>=0 ,会在判断 dntftype<>1 之前判断 to_number(dctffee)>=0,导致一直报无效数字
的错误。
?
看来自己还是很小白啊!!!! XD
?