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 游标后先判断游标是否提取到数据集,
     如游标存在数据集,则继续运行 中间业务处理代码,否则退出;
     

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-712977/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-712977/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值