我在包裹抛出错误中有一个查询
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)
请给我建议解决办法
显然,v_acct_num
列包含非数值。to_number()
函数限制参数中的值不应包含任何非数字字符,否则系统将以ORA-01722:invalid number
抛出。如果您确信提取非数字字符时数据匹配,则在join
的on
子句的排序规则中使用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 条件,代码为