Jack最近比较忙,所以没有更新博客。今天一个程序上线正式环境之后,log记录比较奇怪,看起来像是程序只执行了开头。ST22查询后发现有产生dump,发现问题是一个很低级的错误。
有一段根据条件筛选对内表进行delete处理。以spfli表为例。
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gw_spfli LIKE LINE OF gt_spfli.
SELECT * FROM spfli
INTO TABLE gt_spfli.
LOOP AT gt_spfli INTO gw_spfli.
IF gw_spfli-carrid = 'AA'.
DELETE gt_spfli FROM gw_spfli.
ENDIF.
ENDLOOP.
代码语法检查并没有错误,但是实际执行会产生dump,看来是数据类型识别出了问题。
修改方法一:
将DELETE gt_spfli FROM gw_spfli. 修改为 DELETE TABLE gt_spfli FROM gw_spfli.
修改方法二:
将DELETE gt_spfli FROM gw_spfli. 修改为 DELETE gt_spfli.
总结
希望以后不要再犯这么低级的错误了,同时也要增加基础的扎实度。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/17870.html