首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何知道10385274000是否符合甲骨文的号码(10)?

我如何知道10385274000是否符合甲骨文的号码(10)?
EN

Stack Overflow用户
提问于 2009-08-01 01:07:53
回答 1查看 20.9K关注 0票数 5

我花了整整一周的时间来制造一个生产错误。

我终于找到了导致所有混乱的罪魁祸首。

我收到以下错误消息:

代码语言:javascript
复制
java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-01438: value larger than specified precision allows for this column

从所有的信息来看,我认为这可能是错误的数据,系统正在尝试插入:

代码语言:javascript
复制
10385274000

变成一个数字(10)

我怎么知道这个值是否合适?

谢谢

编辑

根据米歇尔·托德的建议:

代码语言:javascript
复制
create table xyz( testfield number( 10 ) );

insert into xyz values( 10385274000 )


Error: ORA-01438: value larger than specified precision allowed for this column

谢谢你们!

谢谢你的堆叠

编辑

给我自己的笔记(不要忘记问题所在)

我有一个Oracle产品,它将事件的时间存储在数据库表中

代码语言:javascript
复制
START_TIME|END_TIME

结果显示,每天晚上,它都会将这些信息备份到另一个表中,但在此过程中执行一个performs。它的存储方式是:

代码语言:javascript
复制
TOTALTIME

当通过减去结束时间- STARTTIME来计算这个字段时,问题就出现了.生成的数字存储在本列中,定义为:编号(10)

实际上,如果END_ time -START_TIME在时间上(大约4个月左右)太远,那么值(以毫秒为单位)就会很大,以至于不适合目标列(我猜它的代码中有类似于endTime.getTime() - startTime.getTime()的内容)。

现在,这一切听起来太简单了,也太愚蠢了,但我花了4 day+才发现,因为这是一个封闭的应用程序,我不知道发生了什么,我唯一得到的就是堆栈跟踪。

为了找出这个问题,我不得不在整个过程中(从旧的意义上说,手工和显然没有源)进行反向工程。

当我这样做的时候,我在我的“手编码的移影器”中也有同样的错误,并且找到了解决它的方法!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-01 01:15:58

数字10 (10)指定字段大小。这意味着该字段可以容纳长达10个字符的数字。您的数字有11位数,因此值太大而不适合。任何小于100亿(10,000,000)的内容都可以毫不费力地插入。如果要在插入之前验证值,则需要检查此值。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1215535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档