【已解决】ORA-01722: invalid number

简介: 【已解决】ORA-01722: invalid number

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函数进行截取:

SELECT REGEXP_SUBSTR('1-2', '[^-]+') FROM dual;

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

截取后

成功执行!


目录
相关文章
|
6月前
【已解决】nested exception is java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
【已解决】nested exception is java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
81 0
|
SQL Oracle 关系型数据库
ORA-01722:invalid number
Oracle表字段为`VARCHAR2`时,where条件出现`NUMBER`的匹配,`可能`会出现该错误。
335 0
ORA-01722:invalid number
|
数据库管理
[20161129]BBED-00209 invalid number.txt
[20161129]BBED-00209 invalid number (9524782f).txt --以前遇到的问题,现在补充测试看看。 BBED> modify /x 9524782f  offset 492 BBED-00209: invalid ...
1703 0
|
Oracle 关系型数据库 MySQL
ERROR 1292 (22007): Truncated incorrect DOUBLE value 和ORA-01722: invalid number
其实这种错误和隐式转换有关 主要是由于转换的时候不能转换为期望的格式的然后出的问题 比如 1p这个字符要转换为 int(number)是不可能的 MYSQL 错误模拟如下: myql> show variables like 'sql_mode%'; +--...
3497 0
|
算法
Leetcode 313. Super Ugly Number
题目翻译成中文是『超级丑数』,啥叫丑数?丑数就是素因子只有2,3,5的数,7 14 21不是丑数,因为他们都有7这个素数。 这里的超级丑数只是对丑数的一个扩展,超级丑数的素因子不再仅限于2 3 5,而是由题目给定一个素数数组。与朴素丑数算法相比,只是将素因子变了而已,解法还是和朴素丑数一致的。
99 1
|
5月前
|
存储 SQL 算法
LeetCode 题目 65:有效数字(Valid Number)【python】
LeetCode 题目 65:有效数字(Valid Number)【python】
|
6月前
|
存储 算法
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
45 0
|
存储
Leetcode Single Number II (面试题推荐)
给你一个整数数组,每个元素出现了三次,但只有一个元素出现了一次,让你找出这个数,要求线性的时间复杂度,不使用额外空间。
39 0
|
算法
LeetCode 414. Third Maximum Number
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
94 0
LeetCode 414. Third Maximum Number
|
存储
LeetCode 313. Super Ugly Number
编写一段程序来查找第 n 个超级丑数。 超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。
97 0
LeetCode 313. Super Ugly Number

热门文章

最新文章