某系统测试环境多个功能突然出现异常,排查后发现都是SQL无法正常运行,且错误都是“ORA-01722: 无效数字”,经过一次次排查,一次次确认,DS_STATE就是数字类型,为什么写查询SQL为DS_STATE字段赋数字类型报错,赋字符串类型却能正常执行。下文介绍了整个发现问题,分析问题到最后解决问题的过程。

在报错的所有语句中任意找了一条进行了排查,报错结果如下图:

确认DS_STATE到底是什么类型:

经过查看,DS_STATE就是数字类型。接着查看了视图YN_DAIRYSTATION_V  的内容,

从上图中看到 DS_STATE 与其他表字段在试图中做了关系,难不成问题在这儿,

接着查看了:bd_statu 表的ydb_pvalue 字段类型

\(^o^)/~,好像发现问题了,数字类型和字符串类型做了关联并且没有进行数据类型转换,但是,Oracle会进行自动隐式转换,应该不是这个问题,接着查看了正式环境数据库、开发环境数据库此语句都可以正常执行 ,所以确定不是类型转化的问题。

从SQL语句语法上分析没找到问题,后分析可能是数据库底层是不是做了什么设置导致SQL语句无法正常运行,有个这个想法请教了杨华峰老师,经过杨老师的分析后定位到

Oracle 初始化参数之cursor_sharing 惹的祸,目前系统设置cursor_sharing=FORCE,更改为为默认设置cursor_sharing= EXACT 后,所有报错的SQL都可以正常执行了。

总结经验,出现这个问题有两个解决办法:

第一种:在写多表关联的SQL语句时,where条件中的关联字段要做数据类型的显式转化,

改写前:

改写后:

第二种:调整 Oracle 初始化参数之cursor_sharing=EXACT

由于我运维的系统不是单个SQL有这个问题,是多个SQL都要同样的问题,所以我采用了第二种解决方法,以上就是我解决此问题的过程和方法,分享给大家,后续有同样的问题可以参考解决。

令人抓狂的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. 摆脱令人抓狂的ESlint 语法检测配置说明

    最近学习Vue,通过vue-cli脚手架创建的项目环境,写了段时间后,发现这个ESlint语法检测真是令人抓狂!!! 所以不得不停下手中的代码去学习下ESlint的规则配置. 其实我并不反对这些语法检 ...

  4. 令人抓狂的pintia

    要掌握一项技能最基本的做法就是不断地练习和练习 ,但是pintia上的题真的好令人抓狂啊.一道题甚至能花费我一个小时甚至一个半小时的时间,也不一定能做出来.有时真的好崩溃啊,怎么做都做不对.当然,有时 ...

  5. 天涯上令人抓狂的100个神经签名(天涯疯人院语录)

    1.柏芝你走吧,我舍不得韩红! 2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀~ ...

  6. 令人抓狂的100个神经签名

    1.柏芝你走吧,我舍不得韩红!!! 2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀 ...

  7. QA发现的令人抓狂的BUG

    项目中的一个功能是自动生成文档.而自动生成文档的路径是由用户选择的.TEAM里的QA在测试这个功能时,遭遇了令他们抓狂的BUG. 测试过程很简单,运行程序,把生成文档的目标路径设置为桌面.生成. QA ...

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

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

  9. 第27讲:令人抓狂的 JavaScript 混淆技术

    我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如: 某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不 ...

最新文章

  1. 香港大学赵恒爽助理教授招收CV/ML等方向全奖博士生、博士后
  2. IO流以及他们的种类区别 序列化反序列化 如何实现
  3. 用栈实现队列与用队列实现栈
  4. 固件升级校准_RS网络分析仪自检自校准方法-Agitekservice
  5. 转载:一道逻辑题 房间里有100盏电灯
  6. linux 免密码登录
  7. python爬虫代码-Python爬虫大小项目集合
  8. java 分词获取词性_Ansj中文分词Java开发词性分类
  9. 如何让p标签里面的内容首行缩进
  10. kubectl 命令详解(三十五):rollout undo
  11. 航测大数据量处理_上海无人机航测收费标准大数据应用中心
  12. 【行业秘密公开】所谓的QQ刷钻业务
  13. “共识2018”北京区块链大会上BNET创始人刘建军发表了“通信网的未来”的重要演讲
  14. 计算机重启恢复到推荐分辨率,电脑重启后分辨率变低是什么情况?Win10分辨率无法调整怎么办?...
  15. WebMatrix进阶教程(9):如何部署网站
  16. MavLink简单使用
  17. 股市资讯第二证券|畅通物流配送环节 保障群众生活所需
  18. linux磁盘相关命令,Linux磁盘管理常用操作命令
  19. 解题报告 URAL 1051
  20. DrugBank数据库以及其他介绍

热门文章

  1. matlab 凸包质心算法,python 生成任意形状的凸包图代码
  2. Python学习笔记No1
  3. oracle中更改表名语句,转:取Oracle 表名 字段名 注释等实用语句
  4. C#实现图片叠加,图片上嵌入文字,文字生成图片的方法
  5. 概率论与数理统计(2.5)随机变量的函数的分布
  6. 链接VPN后push GitHub代码注意事项
  7. Nginx+PHP for RHEL8安装配置
  8. GPT-4开源平替miniGPT-4来了,仅需23G显存单机可run,附论文、项目代码地址
  9. 移动端h5兼容ios和Android
  10. 工作一个月的心得体会