"orcle 查询提示无效数字"什么原因?
以下为问题语句:
select fun_get_emr_elementvalue('206076',v.id,r.id) 出院记录时间,
(select max(a.INANDOUT_DATE) from RCD_TEMPERATURE_LIFESIGNDATA a where a.Inpatient_Id = a.inpatient_id/a.id=v.id/) as 体温单出院时间,
v.name,v.INPATIENT_NO
from vhis_inpatientinfo v ,
rcd_inpatient_record_set s,
rcd_inpatient_record r ,
RCD_TEMPERATURE_LIFESIGNDATA a
where v.id=s.inpatient_id
and s.id=r.inpatient_record_set_id
and v.INPATIENT_NO =a.inpatient_id
and (r.name like '%出院记录%' or r.name like '%体温单%')
要调试一下参数,你的参数格式可能不对。
一步步排查,先将条件去掉看能否执行,能执行就说明条件里面有问题,然后把查询列里面那个体温单出院时间去掉看看
这个问题百分百是由于对字符进行to_number导致的。你的条件上没有显式的转换,说明发生了隐式转换。
所以你必然有一个字段是字符类型,然后另外一个字符必然是数值类型,然后两者进行了关联。
比如a表的a列是字符类型,这个语句就会发生隐式转换,然后执行可能会报错,也可能不报错取决于如何访问数据。
select * from a where a = 1
下面图片是执行结果,我自己做的一个sql分析小工具。