首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL错误"ORA-01722:无效数字“

SQL错误"ORA-01722:无效数字“
EN

Stack Overflow用户
提问于 2012-09-23 09:24:16
回答 13查看 1M关注 0票数 123

对于某些人来说,这是一个非常简单的方法,下面的插入代码给了我

ORA-01722:数字无效

为什么?

代码语言:javascript
复制
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');
EN

回答 13

Stack Overflow用户

发布于 2012-09-23 09:32:35

当尝试将字符串转换为数字,但字符串无法转换为数字时,会发生ORA-01722错误。

在看不到您的表定义的情况下,您似乎正在尝试将值列表末尾的数字序列转换为数字,分隔它的空格将抛出此错误。但根据你给我们的信息,它可能发生在任何领域(除了第一个)。

票数 142
EN

Stack Overflow用户

发布于 2012-09-23 16:37:54

假设电话号码定义为NUMBER,则不能将空格转换为号码:

代码语言:javascript
复制
create table telephone_number (tel_number number);
insert into telephone_number values ('0419 853 694');

以上代码为您提供了一个

ORA-01722:无效的数字

票数 28
EN

Stack Overflow用户

发布于 2013-12-27 23:35:57

有一种方法可以解决这个问题。删除非数字字符,然后将其转换为数字。

代码语言:javascript
复制
cast(regexp_replace('0419 853 694', '[^0-9]+', '') as number)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12549029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档