请教一条非常奇怪的SQL语句问题
qjlwj 2008-06-25 04:51:30 我负责维护一个钢铁企业的生产管理系统,程序已经上线2年,一直运行正常,今天却出了非常奇怪的故障,请大侠帮忙解释一下。
该厂有两种钢坯产品(方坯,实际宽度400、板坯实际宽度1000),板坯产品突然没有理论重量(理论重量计算为密度*体积),方坯却正常,但是两种产品其实都是一段代码,排除了各种因素后,打断点进行跟踪,发现一条SQL查询语句报错,该SQL查询语句是查询密度表。
表的结构大致如下:
产品名称(Varchar2) 铸机号(Varchar2) 最小宽度(num) 最大宽度(num) 密度
方坯 2 350 450 7850
板坯 1 750 1300 7850
抓出来的语句为:
select 密度 from 密度表 where 铸机号=1 and 产品名称=板坯 and 最小宽度<=1000 and 最大宽度>=1000;
语句无法执行,报错:ORA-01722: 无效数字错误。
执行方坯的语句:
select 密度 from 密度表 where 铸机号=2 and 产品名称=方坯 and 最小宽度<=400 and 最大宽度>=400;
却一切正常。
执行下面的语句也一切正常:
select 密度 from 密度表 where 产品名称=板坯 and 铸机号=1 and 最小宽度<=1000 and 最大宽度>=1000;
再次执行语句:
select 密度 from 密度表 where 铸机号=1 and 产品名称=板坯 and 最小宽度<=749 and 最大宽度>=1000;
也一切正常,但是只要最小宽度<=750或750以上,就会报错,改变条件顺序就不会报。
百思不得其解,愿达人指教。谢谢!