今天花了大半天找一个错误,错误提示如下ORA-06502: PL/SQL: 数字或值错误
代码如下:
type cur_type is ref CURSOR; --定义一个动态游标
c_tab cur_type;
v_sql varchar2(1000);
iRewardItemRuleId number(20);
sRewardCharacterContent varchar2(100);
sRewardRatiocontentIds varchar2(120);
open c_tab FOR v_sql;
loop
fetch c_tab into iRewardItemRuleId,sRewardRatiocontentIds,sRewardCharacterContent ;
exit when c_tab%NOTFOUND;
提示在 fetch c_tab into iRewardItemRuleId,sRewardRatiocontentIds,sRewardCharacterContent ; 这行报错,然而报错的提示是:数字或值错误 。
通过各种查数据发现并不是查询的值或者数字有错误,是游标 sRewardCharacterContent 的缓冲区太小导致。
解决: sRewardCharacterContent varchar2(100); 改为sRewardCharacterContent varchar2(1000);