ORA-01722 invalid number 一个比较隐蔽的可能错误原因
在Oracle数据库中,数据类型为char或者varchar的字段,里面存储的数据,可以是纯数字串,比如: 3433,也可以是带有英文字符的字符串,比如: 3433a。
Oracle对于纯数字串,其查询方式是比较随意的,where alert_id = '3433' 或者where alert_id = 3433 这两种查询条件都可以,也就是说,带引号或者不带引号都可以。
Oracle对于字符串,则只能用上面第一种方式(带引号),如果用第二种方式(不带引号),则会报错:ORA-01722: invalid number。
也就是说,虽然数据类型是一样的,但是Oracle内部对于纯数字串和字符串还是有所区分的,而且Oracle认为这个字段的所有数据都是这种类型。这个纯数字串和字符串的相互转化,可能就取决于一条数据。
如果在一个数据库中的某个字段,以前的数据都是纯数字串,这个时候你一定要注意,不要轻易向里面插入(或者更新为)一个字符串。因为以前的源代码可能两种查询方式都用了,你一旦插入一个字符串,则该字段的所有数据都变为字符串,以前用的第二种查询方式就不能用了。
这个错误很隐蔽,因为源代码并没有改变,这个位置的数据也没有改变,只是其他位置的数据改变了。如果改变数据库的人和编写源代码的人不是同一个人,就更难发现了。
因此,如果不想修改源代码的话,还是按照以前的方式来吧。
ORA-01722 invalid number 一个比较隐蔽的可能错误原因的更多相关文章
- LR连接oracle时出现:SQLState=28000[Oracle][ODBC][Ora]ORA-01017:invalid username/password;logon denied
出现的现象:
- use AP_VENDOR_PUB_PKG.Update_Vendor_Site_Public to u ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public
ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public 发现此问题的经过: ...
- ORA-01722: invalid number
---问题 select owner,index_name,DEGREE from DBA_INDEXES where DEGREE>1 ...
- 'Invalid update: invalid number of rows in section xx. The number of rows contained in an existing section after the update (xxx)...
'Invalid update: invalid number of rows in section 5. The number of rows contained in an existing s ...
- ORA-01722: invalid number,ORA-12801
SQL: SELECT /*+ parallel(a,32) */ a.id ,a.data_date ,a.mobile_num ,a.mobile_code ,b.prov AS mobile_p ...
- java.sql.SQLException: Io 异常: Invalid number format for port number
java.sql.SQLException: Io 异常: Invalid number format for port number jdbc数据库链接配置没有写端口号 要检查jdbc的配置 ...
- 解决sqoop报错Invalid number; item = ITEM_UNICODE
报错栈: java.sql.SQLException: Invalid number; item = ITEM_UNICODE at com.intersys.jdbc.SysList.getInt( ...
- [nginx]invalid number of arguments
invalid number of arguments nginx出现以下的错误,基本上错误的原因就是少了后面的分号导致. invalid number of arguments
- Io 异常: Invalid number format for port number
报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number at oracle.jd ...
随机推荐
- 第二十一节:Asp.Net Core MVC和WebApi路由规则的总结和对比
一. Core Mvc 1.传统路由 Core MVC中,默认会在 Startup类→Configure方法→UseMvc方法中,会有默认路由:routes.MapRoute("defaul ...
- k8s服务器内核参数调整
1. net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-arptables = 1net.bridge.bridge-nf ...
- express捕获全局异常的三种方法
场景 express的路由里抛出异常后,全局中间件没办法捕获,需要在所有的路由函数里写try catch,这坑爹的逻辑让人每次都要多写n行代码 官方错误捕获中件间代码如下 app.use(functi ...
- webpack篇,结合理论与实际,加以透彻分析!
Webpack篇 开始着手项目打包的一些东西,还不是特别懂,一边学习,一边做笔记好啦. 1.webpack的概念.Webpack 是当下最热门的前端资源模块化管理和打包工具.任何形式的资源都可以视作模 ...
- To B产品,业务方全程蒙蔽怎么搞?
这是发生在很久前的事,那会我还是产品实习生. 今天和业务部门进行需求审核,对的是公司内部SAAS系统的采购模块.怎么说呢?就是觉得不专业吧 辛辛苦苦把原 ...
- Xml格式数据转map工具类
前言[ 最近在写一个业务,由于调UPS物流的接口返回的是一个xml格式的数据结果,我现在要拿到xml中某个节点的值,而这个xml数据是多节点多层级的,并且这某个节点的值有可能只有一条值,有可能有多条, ...
- SQL中的连接(极客时间)
SQL中的连接 关系型数据库的核心之一就是连接, 而在不同的标准中, 连接的写法上可能有区别, 最为主要的两个SQL标准就是SQL92和SQL99了, 后面的数字表示的是标准提出的时间. SQL92中 ...
- sql server 安装出现需要sqlncli.msi文件,错误为 microsoft sql server 2012 native client
在安装sql server 2017 时出现 弹框标题为 microsoft sql server 2012 native client 内容为需要sqlncli.msi文件 去本地目录找本身的那 ...
- Nginx02(环境配置以及基本使用)
一:Nginx环境配置 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet ...
- Centos7安装elasticSearch6
Elasticsearch6.0 1.Elasticsearch: Elasticsearch是一个基于 ...