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

被折叠的 条评论
为什么被折叠?



