编程是一个严谨的活:修改一个bug,引入了新的bug

 

1,需求中要求,将一个varchar类型字段:比如 acid,加(算术加)上一个数字,其结果作为一个新的ID:

v_cardNo varchar(12)。

 

逻辑代码如下:

 

......

v_cardNo :=  acid+ 278122220258  --(两次隐形转换:字符-》数字,数字-》字符)

......

 

2,但是在实际做的时候发先acid中含有非数字字符,在采用算术加时会出错:ORA-01722: invalid number。

为了fix这个bug,才用了如下代码:

 

        BEGIN
        --{
            SELECT acid+ 278122220258
            INTO   v_cardNo
            FROM   dual;
        --}
        EXCEPTION
        WHEN OTHERS THEN
             v_cardNo := acid || '278122220258';
        END;

 

3,以上代码看是没有问题,运行时却出了bug:ORA-06502: PL/SQL: numeric or value error: character string buffer too small。

     v_cardNo := acid || '278122220258';

     忘了把v_cardNo 的长度改为:24。

 

 


编程是一个严谨的活,每一个改代码都要仔细。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值