如何解决该错误:ORA-06502: PL/SQL: 数字或值错误 :

VG 2002-12-23 07:10:27
如何解决该错误:ORA-06502: PL/SQL: 数字或值错误 :
请高手帮忙解决该错误。

...全文
2500 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiezhi 2002-12-23
  • 打赏
  • 举报
回复
这个错误通常是因为你定义的字符串的长度不够,比较在循环中拚字符串,结果循环若干次后,字符串超出了原来定义的长度--数字或值错误的信息就会立刻出现
VG 2002-12-23
  • 打赏
  • 举报
回复
我用的就是%type。和表中的字段类型是一致的。
sz_news 2002-12-23
  • 打赏
  • 举报
回复
定义plsql参数的时候,
如果是参数类型必须是varchar2,number或者%type型!!不能指定具体的长度!!
VG 2002-12-23
  • 打赏
  • 举报
回复
出错时的数据我捕捉到了。
v_account CHAR(32)
v_left NUMBER(13)
v_tranamount NUMBER(13)

和表里字段类型一致。
出错时的数据对应的是:'104923399999',823455,-100
lizhenjia 2002-12-23
  • 打赏
  • 举报
回复
数据的精度或定义长度不够也肯定会出现这个错误,比如:
sCharge varchar2(10);
.....
sTempstr:='aaaaaaaaaaaaaaaaaaaaaaaaa';
将sTempstr fetch 到sCharge中就会报6502错误,你可以把那条fetch语句中的变量长度扩大足够长度再试一试!
ORA-06502 PL/SQL: numeric or value error

Cause: An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).
Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.

Copyright (C) 1995, Oracle Corporation
biti_rainy 2002-12-23
  • 打赏
  • 举报
回复
比如
你定义了数字类型

但有时字符串正好都是 数字的?
或者是否有长度等等问题

你应该捕捉出错时候的数据
VG 2002-12-23
  • 打赏
  • 举报
回复
这个错误出现在我从一个游标取数据的地方。
OPEN cur_check;
lOOP
fetch cur_check into v_account,v_left,v_tranamount;
exit when cur_check%notfound; --是这里抛出的异常
...
不是每次取出来都出错,而是取出一部分数据以后才出现的异常,所以,觉得不是数据类型的问题。如果是类型的问题,第一次取就应该出问题了。
biti_rainy 2002-12-23
  • 打赏
  • 举报
回复
那应该是你的程序里面的数据类型的问题?

17,090

社区成员

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

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