ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高

jufeng2309 2007-10-20 04:54:47
我一个包里面写了5个存储过程,用其中一个存储过程来调用其中的4个存储过程,出现这样的错误,不知道是原因?
单步调试的时候发现其中一个存储过程过不去,提示ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高
但我单个去调试这个存储过程能正常返回值,而没有报那个错误。
返回的数据于数据库中取的数据类型一个都是Number(5,4)....
不知为何会出现这样的问题,有谁遇到过。。急求帮助???
...全文
4563 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreaminglove 2012-07-24
  • 打赏
  • 举报
回复
如何解决问题啊?我的也是啊
Ze7czm 2012-05-04
  • 打赏
  • 举报
回复
在没发现问题的时中觉得很难,发现后总觉的很easy!吼吼!!!
wuhuipengwhp 2011-08-21
  • 打赏
  • 举报
回复
那是你的精度太小了把number(4,2)的4改大就可以的
wixinyoyo 2011-05-31
  • 打赏
  • 举报
回复
今天也遇到这个问题了
定义了一个年龄number(2)
碰到一个年龄是104的 存储过程直接爆掉了
果断的把精度改成number(3)
问题解决花费时间2分钟
quanziquantao 2011-05-12
  • 打赏
  • 举报
回复
虽然是4年前的贴了,还是回一下,因为哥刚才也碰到这个问题。

但不调用没有问题,是因为单步调用的时候没有碰到出问题的那个情况,从lz描述的情况看,应该是其中一个存储过程中的变量定义的长度不够,检查一下存储过程中有没有select .. into 语句,查看相关的变量定义,把长度、精度扩大,应该就没有问题了。

哥刚碰到的问题就是这个原因,一个number的变量,定义长度是1,结果count出来的结果有查过10的,结果就报错了,很低级的错误,不过也让哥找了5分钟才发现,终归是发现鸟
jufeng2309 2007-10-20
  • 打赏
  • 举报
回复
非常感谢楼上的回答。。。
我单个存储过程去调试的话,都没有问题,用的数据类型都是一样的NUMBER(5,4)
返回值都正常,但是在另一个存储过程里面调用这个过程后,一旦执行就报那个错
。。。。一直解决不了。。。
47522341 2007-10-20
  • 打赏
  • 举报
回复
Number(5,4)
有输入值超过上述数据的精度;
将类型修改一下试试

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧