[SAP ABAP] Internal Table 명령어

🌼JOYGARDEN·2025년 1월 19일
1

SAP ABAP

목록 보기
13/19

Internal Table 명령어❓

Internal Table의 개념, 속성, 선언 방법에 대한 내용은 아래 링크 참조.
Internal Table의 개념, 속성, 선언 방법

Internal Table 값 할당

다른 변수와 같이 Internal Table도 MOVE 구문을 사용하여 값을 할당할 수 있다.
헤더 라인이 있는 Internal Table은 헤더 라인 값만 복사된다.
-> 헤더 라인이 있으면 헤더 라인과 인터널 테이블 이름이 같다.

MOVE itab1 TO itab2.

그래서 헤더 라인이 있는 Internal Table은 값을 복사할 때 대괄호[ ]를 써야한다.
-> 대괄호 기호가 헤더 라인이 있는 인터널 테이블의 Body 내용을 가리킨다.

MOVE itab1[] TO itab2[].

위 구문은 Internal Table Type이 같아야 한다. Type이 다르면 칼럼 순서대로 값을 할당한다.
Line Type이 다를 때는 아래 구문을 이용하면 두 오브젝트 간 순서와 관계없이 같은 칼럼 명에만 값을 할당할 수 있다.

MOVE-CORRESPONDING itab1 TO itab2.

 

Internal Table 초기화

다른 변수와 같이 Internal Table도 초기화 할 수 있다.
Internal Table을 초기화하는 구문은 CLEAR, REFRESH, FREE가 있다.

CLEAR : 할당된 메모리 공간을 반환한다. 그러나 헤더 라인을 가지는 인터널 테이블이라면 인터널 테이블의 헤더 라인만 삭제한다.

CLEAR itab.

* 헤더 라인이 있는 경우
CLEAR itab[].

REFRESH : 인터널 테이블의 데이터만 지우고, 메모리 공간은 그대로 가지고 있다.

REFRESH itab.

FREE : 메모리 공간 반환

FREE itab.

 

Internal Table Data 추가

INSERT 구문 : 한 라인을 삽입하려면 Key 값을 이용해서 Internal Table에 Line을 추가한다.

INSERT line INTO TABLE itab.

INSERT가 성공하면, 시스템 변수 SY-SUBRC에 0이 저장된다.
만약 Internal Table이 UNIQUE KEY를 가지는 경우라면, INSERT 구문 수행 시 같은 KEY 값이 존재하면 SY-SUBRC에 4 값을 반환하고 덤프 에러는 발생하지 않는다.

APPEND 구문 : INSERT는 Key와 Index를 이용해 인터널 테이블에 데이터를 추가할 수 있지만, APPEND 구문은 Index만 이용할 수 있다.
-> Hashed Type의 인터널 테이블에서는 사용 X

APPEND Line To itab.

 

Internal Table Data 변경

Internal Table의 한 라인을 변경하려면 MODIFY 구문을 사용한다.
해당 라인을 Key, Index 조건으로 찾아서 변경할 수 있다.

MODIFY TABLE itab FROM wa [TRANSPORTING f1 f2..].

다음 구문을 사용하면 Key 값 기준으로 인터널 테이블의 라인을 변경한다. 인터널 텡이블이 Non-Unique Key이고 중복된 값이 존재할 때 MODIFY 구문을 수행할 때는 첫 번째 라인이 변경된다. 헤더 라인이 있는 경우는 FROM wa 구문을 생략할 수 있다.
TRANSPORTING 구문을 이용하면 해당 칼럼만 변경할 수 있다.
-> 일부 칼럼만 변경하는 것

profile
블로그 내용은 Easy ABAP과 SAP에서 교육용으로 제공하는 자료를 참고하였습니다.

0개의 댓글