ORA-01455报错的问题探究

简介: 昨天同事说有个应用执行某个特殊操作时会报:ORA-01455: converting column overflows integer datatype网上包括MOS上对1455报错介绍更多的是在做exp导出时可能出现这个问题。

昨天同事说有个应用执行某个特殊操作时会报:ORA-01455: converting column overflows integer datatype


网上包括MOS上对1455报错介绍更多的是在做exp导出时可能出现这个问题。

1087122.1介绍:

“当创建使用初始值超过10位的序列时,可能会出现如下问题:

ORA-01455: converting column overflows Integer datatype

ORA-06502 PL/SQL: Numeric or value error: number precision too large

APP-01564: Oracle error 1455 in fdsgsv

ORA-01455: converting column overflows integer datatype.

arzira: Error from fdsnxt:2 

APP-AR-11526: ORA-01403: no data found

No errors but the document number generated is 0

产生的原因可能是:

1、通常在C代码中使用定长来创建序列号,最大值允许10位。有时可能会替换一些代码,来调用PLSQL处理超过10位的序列号,可并没有全部替换。

2、展示编号的工作台仅允许15位。

解决方案:

一旦已经使用了序列号,那么就不能修改初始值了。唯一的方法就是创建一个新的序列号,取一个耕地的初始值,然后重新赋予到正使用旧序列号的范畴。如果使用的是无间隔的序列,重新初始化序列号可能会带来更复杂的事情。”


针对这个报错,仔细询问了下,是执行SELECT语句,带一个特殊的过滤条件时会报这个错误,其它的过滤条件则不会报错,说明很可能是这个特殊过滤条件对应的记录中有些小问题,经过同事的排查,确定是其中一条记录的某个字段,Oracle中定义的是NUMBER(10)类型,实际值是8开头的10位数,但应用程序中使用的getInt()获取,Integer的取值是-2^15-2^15-1,显然该值超过了Integer允许的最大值,因此在执行SELECT时会报错,将getInt()改为getDouble()即可。 


总结:

根据报错的提示内容:converting column overflows integer datatype,可以检查是否有表定义的字段类型和程序中定义的变量类型不匹配,导致精度长度无法对应,造成转换过程中超过INTEGER类型的长度,也就是说字段类型和变量类型一定要对应。

目录
相关文章
|
2月前
|
存储 SQL Oracle
[Oracle]细节与使用经验
如果文中阐述不全或不对的,多多交流。
74 0
[Oracle]细节与使用经验
|
缓存 Oracle 关系型数据库
重现ORA-01555错误
非常经典的一个一致性快照过旧的错误,Oracle面试必读。
|
SQL Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理--补充内容
【体系结构】有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:【体系结构】有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构。
2297 0
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
ORA-28002的一个细节
有一个库,由于设置了PASSWORD_LIFE_TIME,且到期未重置密码,账户被锁了,手工解锁后,登录发现报错ORA-28002,明明解锁了,为何还会报错? ORA-28002是一个很简单的错误号, oerr ora 2800228002, 00...
1316 0
|
监控
RAC重要概念和原理
一 clusterware组成 OCR,VOTING文件;后台进程;网络元素 1.1后台进程 (1)Css 用于监控心跳,提供防止脑裂服务。就是监控集群的运行状态 (2)Crs为应用层资源(CRS Resource) 提供"高可用性服务";监控CRS Resource 的运行状态,并要启动,停止,监控,Failover这些资源. Crs资源主要有两类 GSD,ONS,VIP 和 Listener 属于Noteapps类 Database,Instance 和Service 属于 Database-Related Resource 类。
1297 0
|
SQL 监控 Oracle
ORA-600(2662)错误的重现和解决(一)
前两天同事在测试DATA GUARD的时候将主库的ONLINE日志意外覆盖,造成数据库无法打开,采用隐含参数的方法打开又碰到ORA-600错误,最后采用设置EVENTS的方式解决。
1251 0