对于某些人来说,这是一个非常简单的方法,下面的插入代码给了我
ORA-01722:数字无效
为什么?
INSERT INTO CUSTOMER VALUES (1,'MALADY','Claire','27 Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (2,'GIBSON','Jake','27 Smith St Caulfield','0415 713 598');
INSERT INTO CUSTOMER VALUES (3,'LUU','Barry','5 Jones St Malvern','0413 591 341');
INSERT INTO CUSTOMER VALUES (4,'JONES','Michael','7 Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (5,'MALADY','Betty','27 Smith St Knox','0418 418 347');
发布于 2012-09-23 09:32:35
当尝试将字符串转换为数字,但字符串无法转换为数字时,会发生ORA-01722错误。
在看不到您的表定义的情况下,您似乎正在尝试将值列表末尾的数字序列转换为数字,分隔它的空格将抛出此错误。但根据你给我们的信息,它可能发生在任何领域(除了第一个)。
发布于 2012-09-23 16:37:54
假设电话号码定义为NUMBER
,则不能将空格转换为号码:
create table telephone_number (tel_number number);
insert into telephone_number values ('0419 853 694');
以上代码为您提供了一个
ORA-01722:无效的数字
发布于 2013-12-27 23:35:57
有一种方法可以解决这个问题。删除非数字字符,然后将其转换为数字。
cast(regexp_replace('0419 853 694', '[^0-9]+', '') as number)
https://stackoverflow.com/questions/12549029
复制相似问题