关于ORA-01722:invalid number(无效数字)的个人解决思路
select 一个源表然后 left join 另一个子表 on 源表的一个字符串类型的字段 = 子表的number字段 这时一旦我的源表的字符串字段出现不是数字的字符,就会报错
排查流程:
在子查询较多的情况下,先排查是不是where后的字符串字段的值未加双引号,若不是则把主查询运行试一下,可以就继续排查join关联的子表字段,首先重点排查匹配number类型的字段 可以使用正常表达式把除数字以外的字符匹配出来 下面是我的排查代码 select taa_app_emp from t_jf_approve where taa_app_emp is not null and not regexp_like(taa_app_emp,'^\d+匹配结尾 这样就把含有除数字以外的不合法字符的数据给找出来,删除或替换成正常的数据则可正常查询