codecamp

SAP ABAP 删除内部表

DELETE语句用于从内部表中删除一个或多个记录。 通过指定表键或条件或通过查找重复条目来删除内部表的记录。 如果内部表具有非唯一键并且包含重复条目,则将删除表中的第一个条目。

以下是使用DELETE语句从内部表中删除记录或行的语法:

DELETE TABLE <internal_table> FROM <work_area_itab>.

在上述语法中,< work_area_itab> 表达式是一个工作区,它应该与< internal_table>的类型兼容。 内部表。 基于可以从工作区组件获取的默认密钥来执行删除操作。

您还可以通过使用以下语法在DELETE TABLE语句中显式指定表键:

DELETE TABLE <internal_table> WITH TABLE KEY <K1> = <F1>………… <Kn> = <Fn>.

在该语法中,<F1>,<F2> ... <Fn>是内部表的字段,<K1>,<K2> ... <Kn>是表的关键字段。 DELETE语句用于根据表达式<K1> = <F1>,<K2> = <F2> ... <Kn> = <Fn>删除<internal_table>表的记录或行。

注意 - 如果<F1>,<F2> ... <Fn>字段的数据类型与<K1>,<K2> ... <Kn>关键字字段不兼容,那么SAP系统会自动将它们 转换为兼容格式。

实例

REPORT  ZDELETE_DEMO. 
DATA: BEGIN OF Line1, 
ColP TYPE I, 
ColQ TYPE I, 
END OF Line1. 
DATA mytable LIKE HASHED TABLE OF Line1  
WITH UNIQUE KEY ColP. 
DO 8 TIMES. 

Line1-ColP = SY-INDEX. 
Line1-ColQ = SY-INDEX + 4. 
INSERT Line1 INTO TABLE mytable. 
ENDDO. 

Line1-ColP = 1. 
DELETE TABLE mytable: FROM Line1, 
WITH TABLE KEY ColP = 3.
LOOP AT mytable INTO Line1. 

WRITE: / Line1-ColP, Line1-ColQ. 
ENDLOOP.

上面的代码产生以下输出:

2         6 
4         8 
5         9 
6         10 
7         11 
8         12

在这个例子中,mytable有两个字段,ColP和ColQ。 最初,mytable填充有八行,其中ColP包含值1,2,3,4,5,6,7和8.ColQ包含值5,6,7,8,9,10,11和12。 12,因为ColP值每次都增加4。

DELETE语句用于从mytable中删除colP键字段的值为1或3的行。删除后,mytable的ColP字段包含值2,4,5,6,7和8,如图所示 在输出。 ColQ字段包含值6,8,9,10,11和12。

SAP ABAP 读取内部表
SAP ABAP 面向对象
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }