Oracle错误: ORA-01722 无效数字
Oracle错误: ORA-01722 无效数字
- 1.排查错误
- 举个栗子
- 2.总结
- 几个常见的转换格式的oracle函数
- 1. 将日期型转换为字符串TO_CHAR()
- 2. 将数字型转换为字符串to_char()
- 3. 将字符换转换为日期to_date()
- 4. 将字符串转换为数字to_number()
1.排查错误
不用想了,多半是你的数据格式有问题。
先排查你的数据格式,确定是不是你想要的格式。
举个栗子
某一天我需要去按照客户的身份证明文去算下客户的年龄,按照常规逻辑,直接用当年的年份去减去截取的身份证中出生年份
就够了。
select to_number(substr('20191126',1,4))-to_number(SUBSTR(a.cert_no, 7, 4)) age
from A;
注:我的数据是外部数据导入到oracle中的。
然后我开始跑数,是没有问题的,但是我需要创建临时表,创建临时表的时候就一直报错.
ORA-01722 无效数字
扎心
然后我就去原表排查cert_no那一列中所在身份证信息,后来发现,竟然有一条加密的身份证信息:
select * from A
where cert_no like '%*****%';
弄了一个多小时,终于找到问题了,还不是技术的问题,只是别人给的外部数据,自己没有认真查看,扎心。
不需要这样的数据,加一个判断
select to_number(substr('20191126',1,4))-to_number(SUBSTR(a.cert_no, 7, 4)) age
from A
where cert_no not like '%*****%';
搞定!
2.总结
几个常见的转换格式的oracle函数
1. 将日期型转换为字符串TO_CHAR()
// yyyy-mm-dd 也可以
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss am')
from dual;
2. 将数字型转换为字符串to_char()
select to_char(123.45678,'$99999.999')
from dual;
3. 将字符换转换为日期to_date()
select to_date ('20191126', 'yyyy-mm-dd')
from dual;
4. 将字符串转换为数字to_number()
select to_number('01')
from dual;
Oracle错误: ORA-01722 无效数字相关推荐
- 讨厌麻烦的ora 01722无效数字
webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开 ...
- oracle连接连表查询时,两表的连接字段类型不一致的时候,会导致ora 01722无效数字错误,这时候需要转换...
类型不匹配,需要类型转换,函数:to_char()转换成字符, to_num()转换成数字 转载于:https://www.cnblogs.com/shenzhichipingguo/p/871710 ...
- oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法
Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...
- ora-01722 无效数字_错误提示ORA-01722: 无效数字一例
遇到用户反馈过来的一例错误提示: select dutycode,rpttype,rptid from vRptDuty where RptId=7 ; 这个语句提示 ORA-01722: 无效数字 ...
- Oracle报错ORA-01722: 无效数字排查解决方案
在做报表系统的过程中,遇到了一个很有意思的问题,就是Oracle报了一个错java.sql.SQLException: ORA-01722: 无效数字,正常来说,报该错就意味着数据类型不匹配,但是因为 ...
- oracle报错 ORA-01722: 无效数字
在一个查询语句中报错:无效数字 上面红色圈出来的子查询语句,执行结果如下: 这是一个字符串类型的字段,在整个查询语句中会被编译为'261,301',这是一个字符串,前面的C.ROLE_ID字段是num ...
- oracle错误ORA 01031,ORA-01031: insufficient privileges错误解决方法
ORA-01031: insufficient privileges错误解决方法 今天测试一下新功能.10g的. 通过一个linux客户端访问一个linux下的orace 10g数据库. 服务器:19 ...
- oracle错误00911,ORA-00911:无效的字符错误-Oracle
ORA-00911:无效的字符错误--由编译环境下一个小错误引起 实施某功能脚本语句,编译时,出现了ORA-00911错误,当时有些疑惑,之前生产库使用是没有问题的,经过一番检查后发现原来是一个很细微 ...
- ORA-01722 无效数字出错原因以及以及分析总结
转发自:ORACLE-023:令人烦恼的 ora-01722 无效数字 主要原因如下: 1.对于两个类型不匹配(一个数字类型,一个非数字类型,同下)的值进行赋值操作; 2.两个类型不匹配的值进行比较操 ...
最新文章
- 身为Java程序员,这些开源工具你一定要学会!
- c语言用double最大,C语言里double类型的最大值和最小值是多少?
- Http和Rpc框架的区别
- CentOS上安装Docker (图解)
- 案例三:执行 JavaScript 语句
- Qt5学习笔记之QString的使用
- SpringBoot项目下载resources目录下模板文件
- 2、idea热部署插件JRebel+2020年Jrebel激活码+Springboot web开发+Springboot配置文件详解+thymeleaf模板引擎的使用【Springboot】
- Web移动端混合开发--IonicFramework
- 用两种while循环求2的n次方,n是传入的值。
- 计算机学术论文shortessay,实用的Academic Essay写作技巧汇总
- 访问页面升级访问_BPC页面访问缓慢无报错
- 诸子百家的十二家学派
- Idea中自动注释的缩进(避免添加注释自动到行首)
- 创客学院知识巩固-07驱动初级小结
- conda报错:因为动了mata site packages
- CString.Format的详细用法(转)
- OpenCV Error: Assertion failed (size.width0 size.height0) in cv::imshow, file C:\builds\master_
- 中国石油大学《人力资源开发与管理》第二次在线作业
- 多点触控 Android 自定义控件