首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【已解决】ORA-01722: invalid number

【已解决】ORA-01722: invalid number

作者头像
Maynor
发布2023-10-13 11:52:22
发布2023-10-13 11:52:22
10.6K0
举报

ORA-01722: invalid number

问题

invalid number 字符与数值不匹配

oracle 截取 ‘1-2’ 只需要’-'前面的

思路

一、问题提示 执行Oracle的sql语句提示【ORA-01722: invalid number】无效数字错误。

二、问题分析 2.1、类型不匹配 即数据库中字段的设计类型与插入、修改的类型不统一(比如字段设计是:float类型,但是插入或修改的内容确实字符串【‘a’】)

2.2、对字段数据进行函数操作 即对字段进行求和(SUM)、求平均数(AVG)等函数操作,但是字段的数据却不匹配,比如(对字符串数字【.12.5036】求和就会报错,正常应该是(12.5036))

2.3、对数据进行转换操作 即需要转换数据的类型,比如将字符串数值内容转为数字类型,如(to_number(‘.12.5036’)或to_number(‘a’))都会报错,但是【to_number(‘12.5036’)】则正确。

三、注意事项 ①当我们在对数据进行操作时,需要特别注意数据的类型,认真处理好不同数据类型的内容,保证数据内容的完整准确。

②当我们碰到此类错误时,首先从涉及字段的数据类型和内容是否匹配、然后是对应的字符转换和函数操作开始逐一排查,循序渐进。

解决

使用Oracle的REGEXP_SUBSTR函数进行截取:

代码语言:javascript
复制
SELECT REGEXP_SUBSTR('1-2', '[^-]+') FROM dual;

这里,REGEXP_SUBSTR函数用于从字符串中按照正则表达式匹配并截取子字符串。正则表达式"[^-]+"的含义是匹配不包含’-'的一个或多个字符。

截取后

成功执行!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ORA-01722: invalid number
  • 问题
  • 思路
  • 解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档