ORACLE-023:令人烦恼的 ora-01722 无效数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE-023:令人烦恼的 ora-01722 无效数字相关的知识,希望对你有一定的参考价值。

曾经一段时间内写sql语句时,老是莫名其妙的报ora-01722。
对于这个错误提示,尤其是对于一个复杂的sql语句,很是郁闷,因为很多时候都不知所然。
通过每次碰到的总结,其实也不是那么难以解决的,主要原因是:
1、对于两个类型不匹配(一个数字类型,一个非数字类型,同下)的值进行赋值操作;
2、两个类型不匹配的值进行比较操作(例如,“=”);
3、to_number函数中的值,非数字的,比如,to_number(‘a‘)肯定是不行的,to_number(‘12306‘)则是正常的。

要避免这些问题,要做到在写sql语句时就好认真处理好不同类型的问题。
比如如果要比较的话,同时都用to_number强制转换(to_number(字段a) = to_number(字段b)),
或者同时转换为字符串类型(字段a||‘‘ = 字段b||‘‘,都连接一个空字符串使之变成字符串类型)。

在语句中使用to_number函数时,要保证值一定是数字格式,或者写好异常处理。

当我们碰到这个错误提示时,就从所有用到的数字类型的字段开始检查,逐一排查,从而解决问题。


以上是关于ORACLE-023:令人烦恼的 ora-01722 无效数字的主要内容,如果未能解决你的问题,请参考以下文章

如何将令人烦恼的“for”循环转换为“Object.keys”例程或类似程序(JSLint)

使用弹性布局来解决令人烦恼的垂直居中问题~~

工作用哪个邮箱好用?好用的办公邮箱让你放假无烦恼

教你快速找回忘记的wifi密码

如何通过迅捷OCR文字识别软件精准识别图片中的文字

防止切片的惯用方法?