varchar2型字段查询问题

本文探讨了在使用特定SQL查询时遇到ORA-01722错误的原因及解决方案。具体而言,当查询包含varchar2类型的字段且该字段内既有数值型也有字符型数据时,直接使用数值进行查询会导致此错误。文章通过实例说明了解决这一问题的方法,即确保查询条件正确使用单引号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

b.attr_code

b.mem_nbr

都是varchar2型的;

目前情况如下:

tf_b_trade_grp_mem_attr b中的b.attr_code数据只有数值型字符串(如:1,2,3)

tf_b_trade_grp_mem b中的b.mem_nbr 数据既有数值型字符串(如:1,2,3),又有字符型字符串(a,b,c);

执行下面的sql

select * from tf_b_trade_grp_mem_attr b where b.attr_code in (123,234);-----没问题
select * from tf_b_trade_grp_mem b where b.mem_nbr in (123,234);-----报ORA-01722: invalid number

因此,如果确定字段是varchar2的,那么查询条件要加上单引号。如: b.mem_nbr in ('123','234')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值