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