ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

 在调试久悬户转营业外收入proc_batchdormaccttooutincome时,报错如题,首先认
为是存储过程的某些变量声明范围较小,比如varchar2的具体精度有些小,加大即可.
随后于网上查询,也多半是此类解决方法,摘举网上相关连接,供参考:

http://hi.baidu.com/forhh/blog/item/a6a48326357e34128a82a1f2.html



http://topic.csdn.net/u/20071020/16/e44e96fd-2f23-4392-80bd-3022a9151dd8.html

其它链接不再列举于此,大同小异

根据以上网友方法一一尝试,毕无果而终;

后采用排除法处理;大体思路如下:
 1,先把久悬户转营业外收入proc_batchdormaccttooutincome的游标提取
           数据记录限制为1条
   
     2, 开启pl/sql developer的test窗口,组合采用单步及逐过程或者单步跳出
            或者运行 到下一个异常
     3, 最终定位是因为游标的代码顺序出错异常如题报错:
             (注:请注意我用其它涂蓝色及标注顺序号的相关行代码,其实就把游标相关
      行代码顺序进行了调换即可)
   原代码:
      open   cur_getdormmedium;
      loop
       fetch cur_getdormmedium into lvnmediumid, --1
                              lvnvouhno,
                              lvnvouhtype,
                              lvnfundtypdtlcd,
                              --lvntaxrptforpersnbr,
                              lvnbranchorgnbr,
                              lvnacctnbr,
                              lvnmjaccttypcd,
                              lvncurrmiaccttypcd;
       --略去中间业务处理代码,共计是5个子级存储过程 ---2
       exit when cur_getdormmedium%notfound;    ---3
                         end loop;           
                         close cur_getdormmedium;
   修改后代码:
      open   cur_getdormmedium;
      loop
       fetch cur_getdormmedium into lvnmediumid, --1
                              lvnvouhno,
                              lvnvouhtype,
                              lvnfundtypdtlcd,
                              --lvntaxrptforpersnbr,
                              lvnbranchorgnbr,
                              lvnacctnbr,
                              lvnmjaccttypcd,
                              lvncurrmiaccttypcd;
       exit when cur_getdormmedium%notfound;   --3
                         --略去中间业务处理代码,共计是5个子级存储过程 --2
                         end loop;           
                         close cur_getdormmedium;

    小结: 
    a,游标代码块中,open 游标后先判断游标是否提取到数据集,
     如游标存在数据集,则继续运行中间业务处理代码,否则退出;
     
请使用浏览器的分享功能分享到微信等