在ORACLE 9I
版本上对一张数据量比较大的表进行SELECT操作时候报'invalid number'的错误.问题是把非正常数字型的字符串转化为数字型存储.
但是,这个问题不好定位到具体是什么数据有问题.
请教各位,如何快速准确定位到有问题的数据,便于修复.
版本上对一张数据量比较大的表进行SELECT操作时候报'invalid number'的错误.问题是把非正常数字型的字符串转化为数字型存储.
但是,这个问题不好定位到具体是什么数据有问题.
请教各位,如何快速准确定位到有问题的数据,便于修复.
如果找到哪一行就好办了.直接一个sql弄出那些不是数字的就哦了.就能看出哪些数据不对了.
create table test2(cid varchar2(100));
insert into test2 select '21' from dual union all select 'a' from dual;--自定义函数
create or replace function IS_NUMBER(v in varchar2) return number
is
a number;BEGIN
a := to_number(v);
return a;
Exception
when others then
return 0;
END IS_NUMBER;
--执行查询
select cid from test2 where is_number(cid)=0
--查询结果
a