使用to_number函数,提示ORA-01722无效数字的解决方法
2017-06-19 17:21
519 查看
使用to_number()函数时,提示ORA-01722:无效数字 的解决方法
原因分析:1.显式原因:
即字段中存在非数字的字符。
解决方法:(1)替换掉非数字的字符。
(2)使用 ORACLE的regexp_like函数,过滤掉含有非数字字符的记录。
例如:
select * from table1 T1
where regexp_like(T1.字段名,' ^[[:digit:]]+$') --这里使用到了正则表达式,详情请参考http://blog.csdn.net/qq_21909121/article/details/73469118
2.隐式原因:
就是对某个字段进行使用一些函数后,字段的类型已经转换成了VARCHAR2类型,VARCHAR2存在着全角和半角符号之分。
当这个字段是全角字符时,即使你看到该字段是纯数字,但是在where子句中使用to_number,却提示ORA-01722异常。
解决方法:
在select语句中对该字段进行to_number转换,然后在嵌套一个查询语句,在where子句中to_number(字段),即可。
例如:select T2.A , T2.B from table2 T2
where to_number(T2.B) -100 < 0
------------------提示ORA-01722-----------------------
--多嵌套一个查询语句
select * from (
select T2.A ,to_number(T2.B) from table2 T2
where ……
) T3
where to_number(T3.B) - 100 < 0
相关文章推荐
- ORA-01722: 无效数字的解决方法
- oracle to_namber之后报ora-01722:无效数字
- PL/SQL提示“ORA-01722:无效数字,将无效数字查找出来
- to_number不了字段-ORA-01722 无效数字
- Oracle ORA-01722: 无效数字 处理方法
- 随身小记:ORA-01722无效数字的解决办法
- 使用CURL上传文件和数据时提示Array to string conversion错误,解决方法!
- 使用MSTSC远程登录时提示证书无效的解决方法
- Asp.net SqlDataSource中使用like,报错ORA-01722: 无效数字
- IIS出现提示“请求的资源在使用中”问题的解决方法
- 使用PLSQL Developer时,“ORA-12154: TNS:无法解析指定的连接标识符”问题的解决方法
- sys用户使用@连接符提示无效权限的错误ORA-01031: insufficient privileges
- 删除文件提示文件正在被另一个人或程序使用的解决方法
- ORACLE目录路径无效错误解决方法(ORA-29280)
- “在应用程序级别之外使用注册为 allowDefinition=’MachineToApplication’ 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误”的解决方法。
- Oracle远程无法startup,提示"ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 "的解决方法
- sys用户使用@连接符提示无效权限的错误ORA-01031:
- 笔记本电脑无法使用数字小键盘的解决方法
- Firefox报“使用了无效的安全证书”错误的解决方法
- 使用wxWidgets编译的Windows Mobile程序运行时提示“SHCreateMenuBar failed”错误的解决方法