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[]不为空
data: begin of itab occurs 0.
include structure mara.
include type ty_self. data a type c.data:end of itab.
(2)DATA itab TYPE T...
一.
删除
重复
行
:(要先排序后
删除
,才可以
删除
完全)
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.
LOOP中使用DELETE (internal table)的话,可以
删除
当前循环的
内表
行
数据。
Loop at lt_data into lw_data.
Delete ltdata.
Endloop.
在LOOP外使用该语句,check不报错,程序执
行
时会shut dump。LOOP外使用时必须附加条件进
行
删除
。
内表
的增加,
删除
,修改,查找,在
ABAP
编程中同样用的很多。
由于工作区和
内表
是变量,以下是清量工作区和
内表
的方法
clear[] refresh(变量
内表
)
clear (清空工作区).
如果有工作区和
内表
,又要clear和refresh.
1.
内表
的
行
的增加
数据库
表增加的方法:insert
内表
的增加的方法: insert, append ,collect
以下是插入单
行
insert wa into | initial(空
行
) line into tab index idx(
行
).
insert