oracle字符串查询不加单引号报错 ORA-01722:无效数字
·
今天在查找一个生产问题时,发现一个sql,查询字符串的字段,没有拼接单引号,有时会返回成功,有时会返回失败,理论上来说VARCHAR2类型字段查询时应该加单引号,但是也会返回成功就有点不寻常了, 因此仔细查看了下数据,发觉问题所在,因此记录一下,希望大家在以后不再采坑。
就随便拿一个现有的表看一下,表结构如下:

里边有数据如下:

查询数据不加单引号,直接报错ORA-01722:无效数字

我们改下sql,这次不加单引号,查询成功
由以上两次查询大致可以看出:当在查询的结果中都可以自动转化为数字的时候,不加单引号也能查询,但是当查询结果存在不能自动转化为数字的时候则会报错。
如第一次查询存在code为“1231a”无法自动转化为数字,因此报错,第二次先经过筛选,满足like '132%'条件的都能转化为数字就没问题。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)