当前位置: 首页 > 知识库问答 >
问题:

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

包德业
2023-03-14

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

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');

共有3个答案

艾照
2023-03-14

这里有一个解决方法。删除非数字字符,然后将其转换为数字。

cast(regexp_replace('0419 853 694', '[^0-9]+', '') as number)
路和悌
2023-03-14

假设tel_number被定义为 NUMBER - 则此提供的值中的空格无法转换为数字:

create table telephone_number (tel_number number);
insert into telephone_number values ('0419 853 694');

以上给大家一个

ORA-01722:无效的数字

林修雅
2023-03-14

当试图将字符串转换为数字,并且该字符串无法转换为数字时,会出现ORA-01722错误。

在没有看到表定义的情况下,看起来您正在尝试将值列表末尾的数字序列转换为数字,而分隔它的空格会引发此错误。但根据你给我们的信息,这可能发生在任何领域(第一个领域除外)。

 类似资料:
  • 我正在我的Oracle客户机中运行下面提到的查询,我得到了 ORA-01722:无效号码 错误。我知道这个问题是由于TAG_VALUE列的类型是“”,我正在将其转换为数字,然后在where子句中使用该字段。我尝试过使用“”功能,但这也没有帮助。如果我运行查询时忽略了最后一个 where 条件,代码为

  • 这是我的桌子。 我运行此插入语句 我得到这个错误信息: 从命令中的第1行开始出错-插入计划(SCHEDULE_IDARRV_TIMEDEP_TIMEBUS_TRANSFERSBUS_IDTRAVEL_DIRECTIONWEEK_DAY)值(SEQ_SCHEDULE.NEXTVAL,'10','11','White Oak','2','North','4') 错误报告-SQL错误:ORA-01722

  • 一个非常容易的人,下面的插入是给我

  • 请帮助我修复在尝试将内容插入下表时收到的错误消息。举个例子可以帮助我更好地理解它。 插入: 错误报告-SQL错误:ORA-01722:无效号码01722。00000-"无效号码"*原因:指定的号码无效。*操作:指定有效号码。

  • 我不明白为什么我会犯这个错误。 当我对交互式报表执行此查询时,它会引发 ORA-01722 错误。此查询不仅在 SQL 开发人员中正确运行,而且作为经典报表正确运行。当我将类型更改为交互式报表时,再次抛出相同的错误。 我该怎么办? 提前多谢。

  • 我正在创建一个对账报告,我主要是想知道每个发送批次的单据价值。 批处理 ID 位于其自己的列中,发送的数据位于一列中,并以逗号分隔,请参阅下面随机生成的示例: 每个批次至少有2行,最大可以是2000行。在此表中,我有两列:Batch ID和Data 我需要将所有文件金额相加,在这种情况下为100 200。 目前,我正在尝试通过此查询完成工作: 但是以错误ORA-01722结束:无效数字 提前感谢,