이지아밥 108페이지 예시)
data : gs_wa type sflight, -> work area
gs_itab type table of sflight -> internal table
select carrid conid
from spfli
~ 중략
gs_wa 의 경우 구조체라 한 라인만 조회하려고 하는거고
gs_itab 의 경우 인터널 테이블이기 때문에, 여러 라인을 조회하기위해 사용하는거로 알고있습니다.
하지만 위의 예시같은경우, gs_wa와 gs_itab 각각 워크 에리어와 인터널 테이블로 구분하는 이유가 있을까요?
둘다 인터널 테이블로 선언할때와 어떤 차이가 있나요?
댓글 2
-
Hwable
2023.07.06 00:57
-
ektkdwk1234
2023.07.07 10:42
이제야 확인했네요, 정확히 이해했습니다 좋은설명 감사합니다
좋은하루보내세요
안녕하세요.
인터널테이블의 접근방식은 기본적으로 커서방식입니다.
쉽게 말해 첫번째행부터 마지막행까지 순차적으로 한줄 한줄 접근하는 방식이라고 보시면 됩니다.
ABAP에서는 '기본적으로는' 인터널테이블 자체에 직접 엑세스는 불가합니다.
따라서 한줄의 데이터를 별도의 공간에 옮길 필요가 있으며, 이 공간을 Work Area라고 부릅니다.
WA에 꺼내와서 확인 또는 변경하고 이걸 다시 테이블로 업데이트하는 방식입니다.
Field-Symbol 또한 메모리 접근방식이나 WA 개념은 동일하게 적용됩니다.
이런 구조적인 특징으로 인해, WA는 구조체(1줄), ITAB은 테이블(1줄 이상의 그룹데이터)이며 동일한 구조(SFLIGHT)를 가지게 됩니다.