문바이님 블로그에서 가져온 자료입니다.
https://blog.daum.net/rightvoice/61
[Internal Table] 처리를 위한 명령어 정리표.
코딩시 주로 사용되는 명령어를 정리해 보았습니다 명령어 예제 설명 CLEAR CLEAR itab. (with header line) itab의 Header Line 만을 제거한다. CLEAR itab[]. (with header line) itab의 Body 만을 제거한다. CL..
blog.daum.net
명령어 | 예제 | 설명 |
CLEAR | CLEAR itab. (with header line) | itab의 Header Line 만을 제거한다. |
CLEAR itab[]. (with header line) | itab의 Body 만을 제거한다. | |
CLEAR itab. (without header line) | itab의 body를 제거한다. | |
FREE | FREE itab. | itab의 body의 내용이 제거된 후 . 해당공간의 메모리를 회수한다. |
REFRESH | REFRESH itab. | itab의 body의 내용을 제거한다. |
APPEND | APPEND itab. | itab의 header line의 내용을 가장마지막에 추가한다. |
APPEND wa TO itab. | wa를 itab의 가장마지막줄에 추가한다. [공통] | |
APPEND wa TO itab SORTED BY col2. | wa를 itab의 마지막에 삽입후, col2로 [내림차순] 정렬을 수행한다 | |
APPEND INITIAL LINE INTO itab. | 초기화된값으로 마지막에 추가한다. | |
APPEND INITIAL LINE TO <itab> Assigning <wa>. | 초기화된 값으로 <itab>에 추가한 다음 그 Row를 <wa>에 배정한다. | |
INSERT Table Type상관없이 사용가능 Append 보다 Insert 사용권장 |
wa-carrid = 'UA'. wa-connid = '0011'. wa-cityfrom ='NY'. INSERT wa INTO TABLE itab. |
Structure[wa]에 데이타를 입력한다. Internal Table[itab]에 wa를 반영한다. |
wa-carrid = 'LH'. wa-connid = '1111'. wa-cityfrom ='NY'. INSERT wa INTO TABLE itab. " |
Structure[wa]에 데이타를 입력한다. Internal Table[itab]에 wa를 반영한다. |
|
INSERT spfli FROM itab ACCEPTING DUPLICATE KEYS. |
itab의 내용을 spfli에 삽입할때 중복키를 허용한다. | |
INSERT wa INTO itab INDEX 2. | Standard Table의 경우 Index2번을 치고들어간다. | |
INSERT INITIAL LINE INTO itab INDEX1. | 초기화된값으로 1번 row가 추가된다. | |
INSERT TABLE itab. | itab의 header line의 내용을 가장마지막에 추가한다. | |
INSERT LINES OF itab1 FROM 1 TO 5 INTO TABLE itab2. |
itab1의 (1~5번)내용을 itab2에 추가한다. | |
MODIFY MODIFY = UPDATE + INSERT |
MODIFY TABLE itab FROM wa. | itab 의 내용중 wa와 키값이 일치하는 첫번째 항목에 대해서 수정하라 |
MODIFY itab FROM wa TRANSPORTING col2 WHERE ( col2 > 30 ). |
itab 의 내용을 wa로 변경.( col2 > 30 을 만족하는 항목에대해서) | |
MODIFY itab FROM wa INDEX 1. | itab 의 내용을 wa로 변경.(INDEX = 1 인 항목만) | |
Modify itab FROM wa TRANSPORTING fieldName1 fieldName2 WHERE PK = 'ABC' |
itab의 일부내용을 일괄Update할 때 사용한다. itab에서 PK= 'ABC'인 항목을 wa의 fieldname1~2만 갱신한다. Where절을 넣지 않으면 오류가 발생함 |
|
Modify itab FROM wa TRANSPORTING ('ERDAT') ('ERNAM') WHERE (lv_where) |
동적 Transporting의 사용 여러 Field지정시 String, itab등 사용하면 오류가 발생한다. where절을 넣지 않으면 오류가 발생함 |
|
UPDATE | UPDATE sflight SET price = '100' WHERE carrid = 'AZ' AND connid = '0011'. |
Update의 사용방법은 일반적으로 같다. |
COLLECT | COLLECT wa INTO itab. | itab의 구성원중 숫자형(i,f,p)을 제외한 것을 키값으로 간주, 추가 또는 합삽해주는 연산이다. 대상 자체가 많아지면 어느 순간 급격히 속도가 느려지므로, Loop로직적으로 처리하는 것이 유리할 때도 있다. |
DELETE | DELETE TABLE itab FROM wa. | itab 의 내용중 wa와 키값이 일치하는 항목 삭제 |
DELETE itab WHERE ( col2 > 30 OR col1 < 10 ). |
itab 의 내용을 wa로 변경.( col2 > 30 을 만족하는 항목에대해서) | |
DELETE itab INDEX : 1,2,3. | itab 의 내용중 INDEX (1,2,3) 인 항목만 삭제. | |
DELETE itab WHERE field1 NOT IN so_object1 |
itab의 내용을 select-option[so_boejct1]에 속하지 않는것 삭제 | |
SORT itab BY col1. DELETE ADJACENT DUPLICATES FROM itab COMPARING col1. |
항상 정리하고자 하는 대상으로 우선 정렬을 먼저해야한다 itab 의 col1을 비교하여 중복되는 것을 삭제한다. |
|
MOVE 'AZ TO wa-carrid. MOVE '0010' TO wa-connid. DELETE sflight FROM wa. |
WA의 키값을 가진항목을 삭제한다. | |
DELETE FROM sflight WHERE carrid = 'UA'. |
DELETE의 DML사용법은 동일하다 | |
SORT itab. DELETE ADJACENT DUPLICATES FROM itab COMPARING ALL FIELDS. |
itab으로 부터 모든 필드를 대상으로 모두동일하면 삭제한다. | |
DELETE ADJACENT DUPLICATES FROM itab COMPARING col1. |
itab으로 부터 col1이 동일하면 그 이하는 모두 삭제한다. | |
SORT itab by key1 key2 key3. DELETE ADJACENT DUPLICATES FROM itab. |
Key값을 기준으로 itab에서 중복키를 모두 삭제하라 | |
DELETE itab INDEX : 1,3. | itab으로 에서 index 1인 항목을 삭제하라.! 변경된 itab으로 에서 index 3인 항목을 삭제하라.! |
|
READ | FIELD-SYSMBOLS <FS>. ASSIGN COMPONENT fn1 OF STRUCTURE p TO <FS>. FIELD-SYMBOLS <FS> TYPE ANY TABLE. ASSIGN itab TO <FS>. READ TABLE <FS> WITH TABLE KEY (kname) = 'X' INTO wa. |
<FS>임시변수를 선언한다. 이 변수는 어떠한 유형의 필드도 받을 수 있다. |
READ TABLE itab FROM wa INTO wa. | itab 의 내용중 wa와 키값이 일치하는 첫번째 항목에 대해서 읽어와라 | |
READ TABLE itab WITH TABLE KEY col1 = 1 INTO wa . |
itab의 키값을 [eq]관계로 만족하는 단하나의 wa를 얻고자 할때사용. | |
wa-col2 = 'testdb' READ TABLE itab INTO wa COMPARING col2. |
itab의 키값을 [eq]관계로 만족하는 단하나의 wa를 얻고자 할때사용. Comparing기능은 좀더 확인이 필요한 부분임. |
|
READ TABLE itab WITH TABLE KEY col1 = 1 INTO wa TRASNPORTING col1. |
itab의 키값을 [eq]관계로 만족하는 단하나의 wa를 얻고자 할때사용. (wa에는 col1만이 데이타로 전달되고 나머지는 initial로 들어간다) |
|
SORT itab BY col1 READ TABLE itab WITH TABLE KEY col1 = 1 INTO wa TRASNPORTING col1 BINARY SEARCH. |
itab의 키값을 [eq]관계로 만족하는 단하나의 wa를 얻고자 할때사용. (wa에는 col1만이 데이타로 전달되고 나머지는 initial로 들어간다) (Binary search를 위해서 검색조건으로 정렬이 먼저되어야한다 / desending은 정렬시 찾지를 못하므로 주의해야한다.) |
|
READ TABLE itab WITH TABLE KEY col1 = 1 TRANSPORTING NO FIELDS BINARY SEARCH. |
itab에 데이터가 있는지를 검사하는 Read문이다. 있는 경우 sy-subrc = 0을 돌려주고, sy-tabix 는 발견된 위치를 넣어준다. |
|
READ TABLE itab INTO wa INDEX 5. | itab 의 내용중 INDEX (5) 인 항목만 얻고자 할때 | |
SORT | SORT itab. SORT itab DESCENDING BY land weight ASCENDING. |
itab. [itab]의 기본키로 정렬을 수행한다. itab의 land[내림차순]후, weight[오름차순] 정렬을 수행한다. |
SORT itab. SORT itab STABLE. SORT itab DESCENDING BY land weight ASENDING. |
SORT itab [ASCENDING|DESCENDING] [AS text][STABLE] | |
MOVE | MOVE itab1[] TO itab2[] (with header line) | itab1과 itab2는 모두 동일한 Structure로 구성되어야 한다. [] (대괄호)는 Header line의 경우 [body]를 의미한다. |
MOVE itab1 TO itab2 (without header line) | itab1과 itab2는 모두 동일한 Structure로 구성되어야 한다. itab1에서 itab2로 데이타를 이동한다. |
|
MOVE-CORRESPONDING wa1 TO wa2. | wa1 wa2는 다른 배열의 구조체여도 상관없다. 이 명령어와 Loop at을 사용하면 itab의 내용을 쉽게 옴길수 있다. [이 명령은 without header line 인 경우 활용하면 좋다.] |
|
DESCRIBE | DESCRIBE TABLE itab LINES lv_lin OCCURS lv_ini KIND lv_knd. |
lv_lin = itab.RowCount. lv_ini = inital Size lv_knd = [sTandard , Hashed , Sorted ] |
IF | if itab1 = itab2. endif. if itab1 > itab2. endif. |
itab1[Rowcount] , itab2[Rowcount]를 비교한다. |
'SAP > ABAP 기초' 카테고리의 다른 글
(ABAP) FIELD SYMBOL과 CASTING (0) | 2021.06.14 |
---|---|
(ABAP) REFRESH, CLEAR, FREE에 대하여 (0) | 2021.06.14 |
(ABAP) Wildcard 사용하기 (0) | 2021.06.13 |
(ABAP) AT FIRST, AT NEW, AT END OF, AT LAST 정리 (0) | 2021.06.13 |
(ABAP) INTERNAL TABLE 정리 - 1 (0) | 2021.06.13 |