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 无效数字相关推荐

  1. 讨厌麻烦的ora 01722无效数字

    webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开 ...

  2. oracle连接连表查询时,两表的连接字段类型不一致的时候,会导致ora 01722无效数字错误,这时候需要转换...

    类型不匹配,需要类型转换,函数:to_char()转换成字符, to_num()转换成数字 转载于:https://www.cnblogs.com/shenzhichipingguo/p/871710 ...

  3. oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法

    Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...

  4. ora-01722 无效数字_错误提示ORA-01722: 无效数字一例

    遇到用户反馈过来的一例错误提示: select dutycode,rpttype,rptid from vRptDuty where RptId=7 ; 这个语句提示 ORA-01722: 无效数字 ...

  5. Oracle报错ORA-01722: 无效数字排查解决方案

    在做报表系统的过程中,遇到了一个很有意思的问题,就是Oracle报了一个错java.sql.SQLException: ORA-01722: 无效数字,正常来说,报该错就意味着数据类型不匹配,但是因为 ...

  6. oracle报错 ORA-01722: 无效数字

    在一个查询语句中报错:无效数字 上面红色圈出来的子查询语句,执行结果如下: 这是一个字符串类型的字段,在整个查询语句中会被编译为'261,301',这是一个字符串,前面的C.ROLE_ID字段是num ...

  7. oracle错误ORA 01031,ORA-01031: insufficient privileges错误解决方法

    ORA-01031: insufficient privileges错误解决方法 今天测试一下新功能.10g的. 通过一个linux客户端访问一个linux下的orace 10g数据库. 服务器:19 ...

  8. oracle错误00911,ORA-00911:无效的字符错误-Oracle

    ORA-00911:无效的字符错误--由编译环境下一个小错误引起 实施某功能脚本语句,编译时,出现了ORA-00911错误,当时有些疑惑,之前生产库使用是没有问题的,经过一番检查后发现原来是一个很细微 ...

  9. ORA-01722 无效数字出错原因以及以及分析总结

    转发自:ORACLE-023:令人烦恼的 ora-01722 无效数字 主要原因如下: 1.对于两个类型不匹配(一个数字类型,一个非数字类型,同下)的值进行赋值操作; 2.两个类型不匹配的值进行比较操 ...

最新文章

  1. 身为Java程序员,这些开源工具你一定要学会!
  2. c语言用double最大,C语言里double类型的最大值和最小值是多少?
  3. Http和Rpc框架的区别
  4. CentOS上安装Docker (图解)
  5. 案例三:执行 JavaScript 语句
  6. Qt5学习笔记之QString的使用
  7. SpringBoot项目下载resources目录下模板文件
  8. 2、idea热部署插件JRebel+2020年Jrebel激活码+Springboot web开发+Springboot配置文件详解+thymeleaf模板引擎的使用【Springboot】
  9. Web移动端混合开发--IonicFramework
  10. 用两种while循环求2的n次方,n是传入的值。
  11. 计算机学术论文shortessay,实用的Academic Essay写作技巧汇总
  12. 访问页面升级访问_BPC页面访问缓慢无报错
  13. 诸子百家的十二家学派
  14. Idea中自动注释的缩进(避免添加注释自动到行首)
  15. 创客学院知识巩固-07驱动初级小结
  16. conda报错:因为动了mata site packages
  17. CString.Format的详细用法(转)
  18. OpenCV Error: Assertion failed (size.width0 size.height0) in cv::imshow, file C:\builds\master_
  19. 中国石油大学《人力资源开发与管理》第二次在线作业
  20. 多点触控 Android 自定义控件

热门文章

  1. 烟雨黑帽SEO程序:全自动采集更新静态泛目录程序-反向代理泛目录-权重二级目录
  2. 旷视科技 算法工程师校招一面面经
  3. spring Cloud 组建图
  4. 100道Python面试练习题【含答案】
  5. RAW图像处理软件ON1 Photo RAW 2021 for Mac
  6. 从“海底捞”的管理模式看企业标准化管理流程的意义
  7. 清爽聊天无多余功能!抖音聊天工具上线
  8. 欧盟驳回德国最后一公里铜线计划
  9. auto.js实现攒攒/点点平台自动定时提现
  10. Curl下载及简单使用