当前位置:首页 > 个人杂谈 > 正文内容

一个逗号引起的异常

作者: 葛屹肃 | 日期: 2021-06-26 | 分类: 个人杂谈

今天花了2小时解决了因一个逗号引起的异常,唉,太浪费时间了,这就是一个小失误所付出的代价。

以下是出错SQL的逻辑:

IF INSTR(IN_CODE,’,',1,15) > 0 THEN
PACK_TYPE := 10;
TEMP_C_OC := SUBSTR(IN_CODE,INSTR(IN_CODE,’,',1,15)+1,LENGTH(IN_CODE));
ELSIF INSTR(IN_CODE,’,',1,7) > 0 THEN
PACK_TYPE := 4;
TEMP_C_OC := SUBSTR(IN_CODE,INSTR(IN_CODE,’,',1,7)+1,LENGTH(IN_CODE));
ELSIF INSTR(IN_CODE,’,',1,6) > 0 THEN
PACK_TYPE := 1;
TEMP_C_OC := SUBSTR(IN_CODE,INSTR(IN_CODE,’,',1,6)+1,LENGTH(IN_CODE));
ELSIF INSTR(IN_CODE,’,',1,5) > 0 THEN
PACK_TYPE := 2;
TEMP_C_OC := SUBSTR(IN_CODE,INSTR(IN_CODE,’,',1,5)+1,LENGTH(IN_CODE));
ELSE
KEY_LC := -1;
HINT := ‘提示:拆包条码不正确,请刷包板管理条码! ‘;
GOTO END_PROCEDURE;
END IF;

以上SQL,红字部分写成这样:INSTR(IN_CODE,’,',5) > 0,缺少一个逗号与参数,结果意义完全不一样,而且这个错误编译完全没问题,不细看根本发现不了问题所在。

这个问题是用户反馈的,前面3种情况都是正常,只有当出现第4种情况时才会出现异常,像这种小错误放在几百行的语句中,根本无法发现,后来通过输出状态值,才定位到这个错误。

这是一个客户成品仓打标签的系统,这个系统做得有点复杂了,成品仓面对几百个客户,大多数客户都有自己标准的标签,因此标签的数据要兼容的情况太多,全部放在一个过程中处理,每次更改流程都是相当麻烦。

工作嘛,也就是这样,只能能完成就好,过程也许有点难受,只要最终按时完成即是街大欢喜!

版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/2014.html

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论