ora-01722 无效数字_ORA-01722无效数字错误解决记录
今天使用Oracle查询时候遇到了ORA01722错误:无效数字。
一看错误就是数据类型不匹配造成的,我的查询字段key_1虽然是varchar2类型的,但里面放的是number数字,查看aa表type_1字段里面值是没有非数字(数字类型)。我的查询语句如下:
select nvl((select value_1
from static_mapp_table
where key_1 = aa.type_1
and key_type = TEST),
未知)
from aa
简单的说static_mapp_table是一个类似Map的表,里面有key,value根据类型一一对应。
aa表的type_1字段确认不可能出问题,查看static_mapp_table表里面key_1字段都是数字,
而是直接使用:
select * from static_mapp_table where key_1=10000018 and key_type=TEST
查询,查询结果居然是NULL,而是怀疑该字段里面有非数字类型存在,直接使用:
select value_1,length(value_1)
from static_mapp_table
where 1 = 1
and key_type = TEST
结果如下:
如上所示,该字段初看长度是8实际长度是9,很可能里面多了空格。
解决方法:把空格去掉。
全文完。
今天使用Oracle查询时候遇到了ORA01722错误:无效数字。 一看错误就是数据类型不匹配造成的,我的查询字段key_1虽然是varchar2类型的,但里面放的是number数字,查看aa表type_1字段里面值是没有非数字(数字类型)。我的查询语句如下: select nvl((select value_1 from static_mapp_table where key_1 = aa.type_1 and key_type = TEST), 未知) from aa 简单的说static_mapp_table是一个类似Map的表,里面有key,value根据类型一一对应。 aa表的type_1字段确认不可能出问题,查看static_mapp_table表里面key_1字段都是数字, 而是直接使用: select * from static_mapp_table where key_1=10000018 and key_type=TEST 查询,查询结果居然是NULL,而是怀疑该字段里面有非数字类型存在,直接使用: select value_1,length(value_1) from static_mapp_table where 1 = 1 and key_type = TEST 结果如下: 如上所示,该字段初看长度是8实际长度是9,很可能里面多了空格。 解决方法:把空格去掉。 全文完。