🔹 헤더 라인을 사용하는 내부 테이블의 동작 방식

  • 헤더 라인이 있는 내부 테이블을 사용할 때는,
    • 데이터를 읽을 때: 읽은 레코드는 자동으로 헤더 라인에 저장됨.
    • 데이터를 쓸 때: 헤더 라인에 값을 넣고 나서 APPEND 문으로 본문(table body)에 추가함.

 

🔹 배열 방식으로 한 번에 전체 데이터 가져오기 (Array Fetch)

SELECT * FROM zemployees INTO CORRESPONDING FIELDS OF TABLE itab1.
  • SELECT *: zemployees 테이블의 모든 필드를 선택.
  • INTO CORRESPONDING FIELDS OF TABLE itab1: 필드 이름이 같은 것끼리 자동 매칭해서 itab1 테이블에 한꺼번에 다 넣음.
  • 이건 반복문 없이 한 줄로 한 번에 여러 행을 가져오는 방식이야.
  • 이 방법을 Array Fetch 라고 부름.
  • itab1 테이블에는 원래 테이블보다 필드가 하나 더 (LOS, 근속연수) 있지만, 그 필드는 기본값 3으로 채워짐.

 

🔹 루프 + 개별 MOVE 방식 (루프를 돌면서 하나씩 넣기)

SELECT * FROM zemployees. wa-employee = zemployees-employee. wa-surname = zemployees-surname. ... APPEND wa TO itab. ENDSELECT.
  • 이 방식은 하나씩 SELECT → MOVE → APPEND하는 방식
  • 중요한 점:
    • MOVE만 하고 APPEND 안 하면 내부 테이블에 값이 저장되지 않음!
    • 그냥 헤더 레코드만 계속 덮어쓰게 됨.
    • 그래서 반드시 APPEND itab. 해줘야 함.
  • append하면 헤더레코드에 값이 그대로 남기 때문에, 다음 데이터 넣기 전에 CLEAR로 헤더 레코드 초기화하는 것이 안전함.

 

🔹 핵심 요약


방식 설명
SELECT ... INTO CORRESPONDING FIELDS OF TABLE 한 번에 전체 데이터를 내부 테이블에 넣는 방식 (Array Fetch)
SELECT ... + MOVE + APPEND 반복문으로 한 줄씩 읽고 옮겨서 넣는 방식
헤더 라인 사용 시 데이터는 헤더 라인에 들어가므로, APPEND로 테이블 본문에 꼭 추가해야 함

 

 

+ Recent posts