SAP ABAP 刪除內(nèi)部表

2018-01-01 12:56 更新

DELETE語句用于從內(nèi)部表中刪除一個(gè)或多個(gè)記錄。 通過指定表鍵或條件或通過查找重復(fù)條目來刪除內(nèi)部表的記錄。 如果內(nèi)部表具有非唯一鍵并且包含重復(fù)條目,則將刪除表中的第一個(gè)條目。

以下是使用DELETE語句從內(nèi)部表中刪除記錄或行的語法:

DELETE TABLE <internal_table> FROM <work_area_itab>.

在上述語法中,< work_area_itab> 表達(dá)式是一個(gè)工作區(qū),它應(yīng)該與< internal_table>的類型兼容。 內(nèi)部表。 基于可以從工作區(qū)組件獲取的默認(rèn)密鑰來執(zhí)行刪除操作。

您還可以通過使用以下語法在DELETE TABLE語句中顯式指定表鍵:

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

在該語法中,<F1>,<F2> ... <Fn>是內(nèi)部表的字段,<K1>,<K2> ... <Kn>是表的關(guān)鍵字段。 DELETE語句用于根據(jù)表達(dá)式<K1> = <F1>,<K2> = <F2> ... <Kn> = <Fn>刪除<internal_table>表的記錄或行。

注意 - 如果<F1>,<F2> ... <Fn>字段的數(shù)據(jù)類型與<K1>,<K2> ... <Kn>關(guān)鍵字字段不兼容,那么SAP系統(tǒng)會(huì)自動(dòng)將它們 轉(zhuǎn)換為兼容格式。

實(shí)例

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.

上面的代碼產(chǎn)生以下輸出:

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

在這個(gè)例子中,mytable有兩個(gè)字段,ColP和ColQ。 最初,mytable填充有八行,其中ColP包含值1,2,3,4,5,6,7和8.ColQ包含值5,6,7,8,9,10,11和12。 12,因?yàn)镃olP值每次都增加4。

DELETE語句用于從mytable中刪除colP鍵字段的值為1或3的行。刪除后,mytable的ColP字段包含值2,4,5,6,7和8,如圖所示 在輸出。 ColQ字段包含值6,8,9,10,11和12。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)