ABAP: INTERNAL TABLE 실습

·2023년 9월 7일
0

❓ 목표: carrid가 'AA'인 CARRID와 CONNID 조회

1. Table Type을 Dictionary에서 가져오기

DATA: gs_sflight TYPE sflight,
          gt_sflight LIKE TABLE OF gs_sflight.

SELECT carrid connid INTO CORRESPONDING FIELDS OF TABLE  gt_sflight
  FROM sflight
  WHERE carrid = 'AA'.

LOOP AT gt_sflight INTO gs_sflight.
  WRITE :/ gs_sflight-carrid, gs_sflight-connid.
ENDLOOP.

✅ Point 1. DATA 선언

  • sflight는 Abap Dictionary에 있는 테이블이다

  • gs_sflight TYPE sflight 테이블을 바로 타입으로 선언해준다

  • gt_sflight LIKE TABLE OF gs_sflight 이미 선언해둔 gs_sflight의 타입을 선언해준다

    • TABLE로 타입을 가져옴
      (변수를 두개 만드는 이유는 아직 모르겠다. 추후 수정)

✅ Point 2. Open SQL Select문

  • open sql: ABAP에서 만든 SQL 문법
    • ? Open SQL 사용 안 하면 ?
    • DB마다 문법이 다르기 때문에
    • 연동하는 DB가 달라지면 모든 sql문을 수정해줘야 한다
    • 하지만 Open SQL을 사용하면 DB interface만 일해주면 된다
SELECT carrid connid INTO CORRESPONDING FIELDS OF TABLE  gt_sflight
FROM sflight
WHERE carrid = 'AA'.
  • INTO
    INTO CORRESPONDING FIELDS OF TABLE 테이블명

2. Abap Dictionary Table의 필드를 참조해서 ITAB 만들기

DATA : BEGIN OF gs_sflight,
        carrid TYPE sflight-carrid,
        connid TYPE sflight-connid,
        END OF gs_sflight.

DATA : gt_sflight LIKE TABLE OF gs_sflight.

SELECT carrid connid INTO TABLE gt_sflight
  FROM sflight
  WHERE carrid = 'AA'.

LOOP AT gt_sflight INTO gs_sflight.
  WRITE :/ gs_sflight-carrid, gs_sflight-connid.
ENDLOOP.

✅ Point 1. DATA 선언

DATA : BEGIN OF gs_sflight,
        carrid TYPE sflight-carrid,
        connid TYPE sflight-connid,
        END OF gs_sflight.

Table 만들때 요소들을 Dictionary Table Field를 참조

DATA : gt_sflight LIKE TABLE OF gs_sflight.

마찬가지로 LIKE TABLE OF

✅ Point 2. Open SQL

SELECT carrid connid INTO TABLE gt_sflight
  FROM sflight
  WHERE carrid = 'AA'.
  • INTO
    INTO TABLE 테이블명
  • 컬럼 순서
    • Table의 column과 조회하는 column 순서가 같아야 한다.
profile
기록하고 싶은 내용들을 주로 올리고 있습니다

0개의 댓글