• 前言
    在一次修改后台脚本的途中,几经挫折,一顿缝缝补补,以为百无一疏之时,信心满满的提交到前端运行上线。结果喜闻乐见,呵呵,又双叒叕报错了…

  • 经过
    报错代码类似如下:

#错误日志:
2020-07-28 16:32:00 [pool-1-thread-2] [ERROR] Error while compiling statement: FAILED: ParseException line 2:100 cannot recognize input near '<EOF>' '<EOF>' '<EOF>'
2020-07-28 16:32:00 [pool-1-thread-1] [ERROR] 结果获取异常

--变量赋值区
V_MONTH='${taskid?substring(0,6)}';
V_DAY='${taskid}';
V_FDAY='${taskid?substring(0,6)}01';
V_LASTDAY='${taskid?calDate(0,'m','yyyyMMdd')?calDate(0,'L')}';
V_LAST1MONTH='${taskid?calDate(-1,'M')?substring(0,6)}';
V_LAST2MONTH='${taskid?calDate(-2,'M')?substring(0,6)}';
V_LAST3MONTH='${taskid?calDate(-3,'M')?substring(0,6)}';
V1_LASTDAY='${taskid?calDate(-1,'m','yyyyMMdd')?calDate(0,'L')}';
V_LAST_MONTH1DAY='${taskid?calDate(-1,'m')?substring(0,6)}01';

老泪纵横的查看报错日志,定位到对应的sql语句:

--SETP xx
-- update ref.TR_MRKT_TYP_SZ set MRKT_TYP_CD=1 , MRKT_TYP_NAM='xxx' where mrkt_chnl_cd='SZ_BBSZ0790H';
INSERT OVERWRITE TABLE table1
SELECT a_CHNL_CD,CASE WHEN a_CHNL_CD='**********' THEN '1' ELSE a_TYP_CD END a_TYP_CD,CASE WHEN a_CHNL_CD='**********' THEN 'xxx' ELSE a_TYP_NAM END a_TYP_NAM,a_BRANCH_CD,b_BRANCH_CD,c_CHNL_NAM
FROM table2
;

看着这熟悉的注释符号,我凝视许久,突然我意识到了些什么!

没错!问题出在这句注释上的sql语句!为啥,咱们来分析一下,因为这句sql语句在前人优化代码的时候,属于后台脚本,所以他理所当然地直接注释掉了,ok没毛病,然而现如今,后台代码要转到前端,注释里面的;命令结束符本该出现在sql的结尾,却错误的出现在了INSERT OVERWRITE TABLE的前面,导致报错cannot recognize input near '<EOF>' '<EOF>' '<EOF>'无法识别错误字符!!!

  • 结尾
    在重新执行删表、建表、代码变更、程序上线一系列操作之后,终于在下午饭点前成功实现前端平台上的运行跑数了,一个小小的;就这么倒腾了大半天的时间,啊这啊这啊这…T^T

收拾完案发现场后,我冷静的坐在电脑桌前,决定把这次血的教训记在小本本上,以史为鉴,让自己少些秃头,多些发量,ending…

记一次代码编写规范引发的惨案 | perl脚本转前端平台代码之‘天坑’相关推荐

  1. J2EE项目代码编写规范分享

    码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 servle ...

  2. .NET代码编写规范 整理

    .NET代码编写规范 - [ASP.NET] 2009-02-26 | Tag: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lenspe.blogbus.com/ ...

  3. 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站

    程序详细设计之代码编写规范 It's been just over a month since MakeStuffUp.Info - my first solo project as an indep ...

  4. C语言 程序代码编写规范

    前言 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性. 说明 l 本文档主要适用于刚刚开始接 ...

  5. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  6. 微课|中学生可以这样学Python(1.3节):Python代码编写规范

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第1章  Python概述 1.3  Python代码编写规范 京东购买链接:https://it ...

  7. c语言程序报告的前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  8. 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...

    原标题:长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二) 文件名规范 1.一个Java源文件只能存储个Java类. 2.文件名与Java类名相同. 3.一个类文件的代码行 ...

  9. 软件开发php代码规范,php开发规范_PHP代码编写规范

    摘要 腾兴网为您分享:PHP代码编写规范,篆刻字典,优酷,学习计时,小t智联等软件知识,以及我爱写真网,哔哩哔哩唧唧app,碟中碟虚拟光驱,鬼泣31.3,西伯利亚t18,兄弟7450打印机驱动,活动a ...

最新文章

  1. insert时调用本身字段_「技术篇」ETL工具Kettle数据对比同步以及Java程序中调用
  2. LiveVideoStackCon 2021上海站 售票通道关闭倒计时24h
  3. ORACLE 数据库安装后,PL/SQL的登录问题完美解决
  4. linux C++ 多进程初步02
  5. Boost.Python实现Python C/C++混合编程
  6. 生产Docker应用重启排查经历
  7. 今天我的MSN提示升级了
  8. c#使用pdf控件,提示无效注册类
  9. 超简单!一部手机就能提取视频中的语音转换成文字
  10. ubuntu18.04自带的输入法数字键选择出现数字而不是中文
  11. 大脑衰老可逆转,只需注入年轻脑脊液,“返老还童”登Nature
  12. Redis命令INCRBY和INCR区别
  13. 将一个word文档按一页或多页拆分成多个文档
  14. Java 中continue基础用法
  15. OSChina 周二乱弹 ——现在我满眼都是小星星
  16. Java 中 HttpURLConnection 与 PoLA 法则
  17. 核磁T1加权像和T2加权像的区别
  18. ZOJ1217 Numerically Speaking (进制转换,大整数除法,字符串处理,较难而且坑)
  19. LVS三种工作方式八种算法
  20. centos8报错:Errors during downloading metadata for repository ‘base‘

热门文章

  1. Java程序性能优化 !
  2. Http和https请求过程
  3. UI设计都有哪些分类,UI设计岗位哪个更好
  4. C++基本功和 Design Pattern系列 Operator 下
  5. 个人隐私的泄露在日常工作、生活、学习中,每个人都要学会保护自己的个人隐私
  6. 微信小程序连接华为云ModelArts的方法以及一些小坑(一)
  7. DOC与DOCX的区别
  8. 合成大西瓜(西瓜雨版)及改版思路(保姆式教程)
  9. 删除win10系统默认微软输入法
  10. 使用form表单文件上传(enctype)