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

ORA-01722-无效号码

经福
2023-03-14

我在包裹抛出错误中有一个查询

ORA-01722:无效号码。

我试了很多方法,但都没有成功。

select h.column  
  from table1 h,table2 c 
 where c.created_date='17-MAY-17' 
   and nvl(c.acct_nmbr,0)=nvl(to_number(h.v_acct_num),0) 
    null

请给我建议解决办法

共有1个答案

韩华美
2023-03-14

显然,v_acct_num列包含非数值。to_number()函数限制参数中的值不应包含任何非数字字符,否则系统将以ORA-01722:invalid number抛出。如果您确信提取非数字字符时数据匹配,则在joinon子句的排序规则中使用regexp_replace(T2.v_acct_num,'[^[:digit:]]'):

select t2.column  
  from table1 t1
  join table2 t2 on nvl(t1.acct_nmbr,0) = nvl(regexp_replace(t2.v_acct_num,'[^[:digit:]]'),0)
 where t2.created_date = date'2017-05-17'

对于联接使用ANSI-92标准,对于日期语法使用ISO-8601标准。

 类似资料:
  • 我正在尝试执行查询,但它不断给出错误 ORA-01722:无效号码01722.00000-"无效号码" 我检查了是否有像01722这样的数字。00000或类似在我的表中,但没有。我还检查了查询,如果我在非数值中使用算术运算符,如果我正在比较一个数字和非数字值,但仍然什么都没有。我所有的表列都是类型,现在已经一整天了,我还没有找到如何解决它。查询如下:

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

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

  • 我看了无数的帖子,但我仍然没有答案。 在此之前,我运行了一个脚本,告诉sql developer充当discoverer(一个已经创建的包),但是当运行查询时,它返回ORA-01722:无效数字。 我从包中选择了对偶,它返回值。 有人能告诉我为什么它会返回此错误消息的正确方向吗?

  • 执行SQLDRI后日志的错误正在尝试在字段中插入数值,但我一直收到相同的错误 无效数字ORA-01722。我不知道错误在哪里,因为我插入了声明为NUMBER(18,6)的十进制数作为字段IMP_NPVFRONT并且值被强制转换为此长度,但它不起作用。我正在使用这个代码: 上面生成了一个包含以下内容的控制文件: 提前谢谢你,对不起我的英语:) 创建表: 数据文件:

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