1.  DELETE itab[ ]

用于loop当中,删除当前loop行,read table  会改变sy-tabix的值,但是不影响该语法执行结果

例:LOOP ATgt_item INTO gs_item .

DELETE gt_item[] .

ENDLOOP .

2. DELETE itab INDEX i .

删除内表中的指定行

例: DELETE GT_ITEM INDEX 20 .

注意 :该语句不建议在loop循环中使用,因为loop循环中删除了行会影响内表的行索引。

3. DELETE TABLE itab FROM wa .

删除内表KEY值与工作区KEY值相同的行,  关键字TABLE不能丢,否则执行会报错.

4. 删除内表中的重复行

注意 要先排序SORT itab BY **** .

DELETE ADJACENT DUPLICATES FROM itab .  保留第一条数据

例:DELETE ADJACENT DUPLICATES FROM lt_matdoc COMPARING matnr charg.

匹配参数 matnr charg ,删除物料编码与批次相同的行,如果不带COMPARING MATNR CHARG这段,只会删除完成一样的行。

5. 删除内表中符合条件的行。

DELETE GT_** WHERE ******

WHERE 后面的判断可以对字段做花式判断,也可以特意加一个字段用作删除标记,DELETE GT_** WHERE FIELD = ‘X’ .删除有标记的行。

也可以使用range表

例:DELETE GT_ITEM WHERE MATNR NOT IN S_MATNR .使用该语句前需要判断S_MATNR[]不为空

一. 删除 重复行:(要先排序后 删除 ,才可以 删除 完全) SORT itabBY field1  field2.默认是升序,降序-DESCENDING. DELETE ADJACENT DUPLICATES FROM xxx COMPARING ALL FIELDS. DELETE IT_Z_ACCT WHERE Z_DESC_CHN = '固定资产净值:' OR Z_DESC_CHN =
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.
初始化 内表 的作用是清空 内表 所有的数据行,将 内表 恢复到填充或赋值之前的状态。初始化 内表 过程中需要注意之处仍然是初始化无 表头行 内表 和有表头行 内表 的区别,以及初始化 内表 和表头行的区别。 概述如下 一、针对有Header Line表头的 内表 Clear itab,仅清空Header Line表头,但保留 内表 的数据,并保存在内存区。 Clear itab[],仅清空 内表 数据存储空间里的内容,但保留Header Line表头的数据,并保存在内存区。 Refresh itab,效果同Clear itab[]。
内表 的增加, 删除 ,修改,查找,在 ABAP 编程中同样用的很多。 由于工作区和 内表 是变量,以下是清量工作区和 内表 的方法 clear[] refresh(变量 内表 ) clear (清空工作区). 如果有工作区和 内表 ,又要clear和refresh. 1. 内表 的行的增加 数据库表增加的方法:insert 内表 的增加的方法: insert, append ,collect 以下是插入单行 insert wa into | initial(空行) line into tab index idx(行). insert