본문 바로가기
ABAP

[12/12 - ABAP] type과 like의 차이점, like line of, occur 0과 WITH HEADER LINE 차이점 etc..

by 반오십 코린이 2023. 12. 12.
728x90
type과 like의 차이점

 

type과 like은 유사하면서 차이점이 존재한다.

type의 경우, A type B라고 가정했을 때

B는 필연적으로 type의 한 종류여야 한다.

 

like의 경우, C type D라고 가정했을 때,

D는 필연적으로 data 객체여야한다.

 


like line of

 

TYPES: BEGIN OF ty_temp,
       ex1 type STRING,
       ex2 type STRING,
       END OF ty_temp.

DATA: st_temp type ty_temp.
      example like line of st_temp.

 

 

TYPES로 선언한 부분은 구조체 type이고, DATA 부분의 첫줄은 st_temp라는 구조체 객체를 만든 것이다.

해당 st_temp를 like line of 하여 example를 선언하였는데,

좀더 찾아야할 부분이지만, example과 st_temp를 유기적(?)으로 연결시키는 방법이라고 한다.

단순히 type이나 like를 사용하는 것과는 차이점이 있다고 하니 좀 더 찾아보자.


occur 0과 WITH HEADER LINE 차이점

 

DATA: Test TYPE st_ex.
DATA: Test TYPE st_ex occurs 0.

 

1번째 명령어와 2번째 명령어의 차이점은?

 

2번째 명령어는 구조체 형태에서 BODY를 만드는 것, Header LINE은 없는 친구이다.

 

 

DATA : exam TYPE st_ex WITH HEADER LINE.
DATA : tb_exam TYPE TABLE OF st_ex WITH HEADER LINE.

 

1번째 명령어와 2번째 명령어의 차이점은?

 

1번째 명령어는 구조체의 객체를 만드는 과정

2번째 명령어는 테이블의 객체를 만드는 과정(인터널 테이블)

 

WITH HEADER LINE이란, TABLE TYPE일 때만 사용할 수 있는 것이다


 

그렇다면 실질적으로 HEADER LINE이란 무엇인가?

 

table 형태에서 Header line을 만드는 것이라고 볼 수 있는데, 이는 work area를 만드는 것과 일맥상통.

 

그렇다면 work area는 무엇인가?

 

예를 들어, LOOP AT 구문을 통해 인터널 테이블 내부에 있는 값들을 읽어내는 과정을 실행한다고 가정하자.

 

LOOP AT tb_ex into workarea.

 

tb_ex라는 인터널 테이블에서 읽은 값을 한 레코드씩 읽어서

 

workarea에서 처리하는 것이라고 생각하면 된다.


table 종류마다의 차이점?

 

standard table

- non unique key

 

hashed table

- unique key

 

sorted table

- unique 여부 선택 가능.

 

unique key란 겹치지 않는 고유한 값을 의미.

non - unique key는 겹칠 수 있는 고유한 값을 의미.

 

728x90

'ABAP' 카테고리의 다른 글

[12/11 - ABAP] data, 구조체, 인터널 테이블  (0) 2023.12.12