一、问题提示 执行Oracle的sql语句提示【ORA-01722: invalid number】无效数字错误。 二、问题分析 2.1、类型不匹配 即数据库中字段的设计类型与插入、修改的类型不统一(比如字段设计是:float类型,但是插入或修改的内容确实字符串【‘a’】) 2.2、对字段数据进行函数操作 即对字段进行求和(SUM)、求平均数(AVG)等函...
在Java中使用JDBC与Oracle数据库交互时,遇到java.sql.SQLSyntaxErrorException: ORA-01722: invalid number错误通常意味着SQL语句中尝试将非数字类型的值插入到数字类型的列中,或者在比较操作中使用了不匹配的数据类型。以下是根据您的提示逐步分析并解决问题的过程: 1. 确认错误代码ORA-01722的含义 ORA-01722错误指出“...
例如,当我们尝试执行以下SQL语句时:select MOD (TO_NUMBER ('aa1234'), 5) from dual;就会遇到ORA-01722: invalid number错误,这是由于函数to_number()无法将包含非数字字符的字符串转换为数值。因此,如果在查询中遇到ORA-01722错误,首先应该检查vcidname字段,确保所有记录都是纯数字字符串。如果...
执行搜索: SELECT * FROM "TEST" where USER_ID not in (1000) 报错: SELECT * FROM "TEST" where USER_ID not in (1000) > ORA-01722: invalid number > Time: 0.016s 百度了一下,错误一般是类型转换的时候出错,上面的SQL应该就是number类型转换的时候出错。 查找USER_ID的所有不同值,发现其中有一个...
--出错的SQL语句位置(其实本身SQL语句无问题)问题出在bornDate字段中有值为空格导致错误 sum(casewhento_char(sysdate,'yyyy')-substr(bornDate,1,4)<30then1else0end)aslower30, --正确的写法,Trim(bornDate) sum(casewhento_char(sysdate,'yyyy')-substr(Trim(bornDate),1,4)<30then1else0end)aslower...
报错的话,估计是你表的字段vcidname中,某些记录包含了非数字的字符,如:abcd1234等;我用一张几百万记录的表,代公式去查都没有问题。--- 例如:select MOD (TO_NUMBER (‘aa1234’), 5) from dual;就会报ORA-01722: invalid number错误,实际是函数:to_number()报错了。
SQL> commit; Commit complete. SQL> select * from gw1 where name=1; select * from gw1 where name=1 * ERROR at line 1: ORA-01722: invalid number SQL> insert into gw1 values(1); 1 row created. SQL> insert into gw1 values(2); ...
SQL Error: 1722, SQLState: 42000 ORA-01722: invalid number 但在用hibernate时,为了避免数字问题,我们经常会这样写hsql语句:String sql = 'select * from ctEntity as ct where ct.Nos = ''+no+''';当传入参数no为‘4,5’时,可能不会报错,但当no为'4'或'5'时,也就是单个数字时...
PL/SQL开发时,异常“ORA-01722: 无效数字或者ORA-01722: invalid number”的原因分析(二) 我们在写PL/SQL语句时,经常会用到字符串A与数字B的比较,而很多人的做法是直接做比较,殊不知Oracle会隐含地先将字符串A转换为数字,然后再与数字B做比较,这样做之后,就出现隐患了,即当时写程式时,无论怎么测试都不会...
a 字段是 VARCHAR 类型,该字段存在 NULL 以及包含字符的记录,但是并无 "0" 的记录,然后执行 SQL ...