令人抓狂的ORA-01722: 无效数字
某系统测试环境多个功能突然出现异常,排查后发现都是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: 无效数字相关推荐
- 讨厌麻烦的ora 01722无效数字
webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开 ...
- oracle连接连表查询时,两表的连接字段类型不一致的时候,会导致ora 01722无效数字错误,这时候需要转换...
类型不匹配,需要类型转换,函数:to_char()转换成字符, to_num()转换成数字 转载于:https://www.cnblogs.com/shenzhichipingguo/p/871710 ...
- 摆脱令人抓狂的ESlint 语法检测配置说明
最近学习Vue,通过vue-cli脚手架创建的项目环境,写了段时间后,发现这个ESlint语法检测真是令人抓狂!!! 所以不得不停下手中的代码去学习下ESlint的规则配置. 其实我并不反对这些语法检 ...
- 令人抓狂的pintia
要掌握一项技能最基本的做法就是不断地练习和练习 ,但是pintia上的题真的好令人抓狂啊.一道题甚至能花费我一个小时甚至一个半小时的时间,也不一定能做出来.有时真的好崩溃啊,怎么做都做不对.当然,有时 ...
- 天涯上令人抓狂的100个神经签名(天涯疯人院语录)
1.柏芝你走吧,我舍不得韩红! 2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀~ ...
- 令人抓狂的100个神经签名
1.柏芝你走吧,我舍不得韩红!!! 2.按猪的审美观,我基本算得上是个帅哥~ 3.我不是你想象中的那么完美那么坚强,金钱和美女就足以把我征服! 4.见到我以后你会突然发现--原来帅也可以是这样的具体呀 ...
- QA发现的令人抓狂的BUG
项目中的一个功能是自动生成文档.而自动生成文档的路径是由用户选择的.TEAM里的QA在测试这个功能时,遭遇了令他们抓狂的BUG. 测试过程很简单,运行程序,把生成文档的目标路径设置为桌面.生成. QA ...
- oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法
Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...
- 第27讲:令人抓狂的 JavaScript 混淆技术
我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如: 某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不 ...
最新文章
- 香港大学赵恒爽助理教授招收CV/ML等方向全奖博士生、博士后
- IO流以及他们的种类区别 序列化反序列化 如何实现
- 用栈实现队列与用队列实现栈
- 固件升级校准_RS网络分析仪自检自校准方法-Agitekservice
- 转载:一道逻辑题 房间里有100盏电灯
- linux 免密码登录
- python爬虫代码-Python爬虫大小项目集合
- java 分词获取词性_Ansj中文分词Java开发词性分类
- 如何让p标签里面的内容首行缩进
- kubectl 命令详解(三十五):rollout undo
- 航测大数据量处理_上海无人机航测收费标准大数据应用中心
- 【行业秘密公开】所谓的QQ刷钻业务
- “共识2018”北京区块链大会上BNET创始人刘建军发表了“通信网的未来”的重要演讲
- 计算机重启恢复到推荐分辨率,电脑重启后分辨率变低是什么情况?Win10分辨率无法调整怎么办?...
- WebMatrix进阶教程(9):如何部署网站
- MavLink简单使用
- 股市资讯第二证券|畅通物流配送环节 保障群众生活所需
- linux磁盘相关命令,Linux磁盘管理常用操作命令
- 解题报告 URAL 1051
- DrugBank数据库以及其他介绍