首页 >

Oracle-ORA-01722 invalid number 错误

数据库|mysql教程Oracle-ORA-01722 invalid number 错误
Oracle教程,Oracle-ORA-01722 inva
数据库-mysql教程
户外大屏信息发布管理系统源码,ubuntu 编译运行查,tomcat5生成页面慢,网络爬虫技术图解,php开发工程师是干嘛的,产品seo 排名lzw
忽然有一天,好好的系统报错:ORA-01722 invalid number环境:Oracle9 + JDBC访问数据库,之前是好的,忽然发现这个错误后来才知
中国象棋网络版源码,vscode类图插件,ubuntu解除root,tomcat取消升级,sqlite3 字符长度,阿里巴巴数据插件,前端框架技术及应用练习题,python 爬虫图片格式错误,php 执行任务,惠州seo建站工具,h5自适应企业网站源码,ecshop 网页描述,发货软文模板lzw
html 麻将 源码,vscode 放大,怎么卸载ubuntu,内嵌tomcat,sqlite中文乱码,台州网页设计招聘,magento数据库结构,双线服务器托管租用,带有小时的时间插件,微信开发前端框架,树莓派 爬虫,php 直播,谷歌seo优化,springboot高级设置,a标签设置宽度,蓝色红色网站,网页设计表格模板,栏目模板 内容模板 区别,dedecms 后台优化5.7,wordpress新建页面没有内容,老y文章管理系统 修改,易语言信息录入程序lzw

忽然有一天,好好的系统报错:ORA-01722 invalid number

环境:Oracle9 + JDBC访问数据库,之前是好的,忽然发现这个错误

后来才知道缘由

1. 代码里面执行了如下SQL语句:

select mdn from tablename where mdn=13800000000

tablename表里面的mdn字段是varchar2()类型字段,,由于Oracle的字段类型隐式转换功能

上面的SQL语句通常是可行的,查询的时候oracle解析该条件时,会首先to_number(mdn) 再和where mdn=13812345678进行比较判断,如果能够确保mdn字段里面存放的全为数字那么这个语句是一直不会报错的(可能存在效率问题),但偏偏有人误操作在mdn里面加入了几个字母133aa000000,如果还是上面的语句,并且表里面没有13800000000这个用户的数据, 当查询扫描到133aa000000时to_number(mdn)报错ORA-01722 invalid number

2. 因此写SQL语句的时候最好还是规规矩矩的写:

select mdn from tablename where mdn=’13800000000′

什么问题都没有!


Oracle-ORA-01722 invalid number 错误
  • Oracle PL/SQL之ENABLE NOVALIDATE约束
  • Oracle PL/SQL之ENABLE NOVALIDATE约束 | Oracle PL/SQL之ENABLE NOVALIDATE约束 ...

    Oracle-ORA-01722 invalid number 错误
  • 在Linux下使用strace窥视Oracle LGWR进程
  • 在Linux下使用strace窥视Oracle LGWR进程 | 在Linux下使用strace窥视Oracle LGWR进程 ...

    Oracle-ORA-01722 invalid number 错误
  • 把AIX中的Oracle 10g R2数据迁移到HP 集群Oracle 11g R2中
  • 把AIX中的Oracle 10g R2数据迁移到HP 集群Oracle 11g R2中 | 把AIX中的Oracle 10g R2数据迁移到HP 集群Oracle 11g R2中 ...