SAP ABAP/기본

Internal Tables (인터널 테이블) 개요 및 변수 선언

물꼬_ 2025. 1. 26. 23:55

 Using Internal Tables

📍 용도

  • 여러 건의 데이터를 사용할 때
  • 프린트로 뽑을 때
  • 파일로 저장할 때
  • 화면에 Display할 때

📍 Internal Table의 Attribute

🔹 1. Internal Table의 필수 요소: 라인타입 (Line Type)

  • 라인타입(Line Type)은 열(Column)의 개수를 결정하는 요소이다.
  • 각 열의 이름데이터 타입라인타입에 의해 정의된다.
  • 즉, Internal Table라인타입을 통해 행(Row)과 열(Column)의 구조를 갖춘다.

➡️ 정리: Internal Table에는 반드시 라인타입이 있어야 한다.

📝 예시

Carrid (열 이름) Connid (열 이름) ...


🔹 2. Primary Key (프라이머리 키)

  • Primary Key컴포넌트(Unit), 유니크(Unique), 시퀀스(Sequence)로 구성된다.
  • 테이블 내에서 중복되지 않는 값으로, 데이터를 고유하게 식별할 수 있다.

🔹 3. 테이블의 종류 (Table Types)

Internal Table의 종류에는 여러 가지가 있다.

  • Standard Table
  • Sorted Table
  • Hashed Table

🔹 4. Index (인덱스)

  • Index는 Internal Table에 저장된 데이터의 순서에 따라 부여되는 번호를 의미한다.
  • 데이터를 빠르게 찾을 수 있도록 참조 번호 역할을 한다.

➡️ 예시:

Index Carrid Connid ...
1 LH 400 ...
2 KE 300 ...

💡 핵심 요약

1️⃣ Internal Table에는 라인타입이 필수이다.

2️⃣ Primary Key는 데이터의 유일성을 보장한다.

3️⃣ 테이블의 종류는 여러 가지가 있으며, 각기 다른 특징을 가진다.

4️⃣ Index는 데이터를 저장할 때 순서에 따라 번호가 매겨진다.

 


📍 Attributes and Uses of Tables

🔹 1. Access Methods: Index Access vs Key Access

테이블에서 데이터를 가져올 때 두 가지 접근 방식이 있다:

Index Access (인덱스 접근)

  • 데이터를 인덱스 번호를 사용해 접근하는 방식이다.
  • n건의 데이터가 Internal Table에 저장되어 있을 때, 각 데이터는 번호(Index)를 부여받는다.
  • 인덱스 번호를 통해 특정 데이터를 빠르게 찾아낼 수 있다.

➡️ 예시

Index Carrid Connid FlightDate
1 AA 0017 2025-01-01
2 UA 0008 2025-01-02

Key Access (키 접근)

  • 데이터를 열(Column)의 이름(컴포넌트)을 기준으로 접근하는 방식이다.
  • Internal Table의 열을 기준으로 특정 데이터를 조회할 때 사용된다.
  • 컴포넌트(Component)의 값을 통해 데이터를 찾는다.

➡️ 정리:

  • Index Access → 인덱스 번호로 접근
  • Key Access → 열(컴포넌트) 값으로 접근

🔹 2. Standard Table의 특징

  • Standard TableIndex AccessKey Access를 모두 사용할 수 있다.
  • Primary Key를 설정하면, 중복된 데이터를 허용할 수 있다.
    • 즉, 동일한 키 값을 가진 여러 데이터 행이 존재할 수 있다.

➡️ 예시

Index Carrid Connid FlightDate
1 AA 0017 2025-01-01
2 AA 0008 2025-01-01
3 UA 0017 2025-01-02

🔍 Primary Key 설정 시 중복 허용 예시

1 AA 0017 2572
2 AA 0008 2572
6 UA 0017 2572


🔹 3. Standard Table의 활용

  • Standard Table은 주로 Index Access 방식으로 데이터를 조회할 때 많이 사용된다.
  • 대량의 데이터를 처리할 때 빠른 접근 속도를 제공하기 때문에 자주 사용하는 테이블 유형이다.

💡 핵심 요약

1️⃣ Index Access → 인덱스 번호로 데이터를 접근하는 방식

2️⃣ Key Access → 열의 이름(컴포넌트 값)을 기준으로 데이터를 접근하는 방식

3️⃣ Standard TableIndex AccessKey Access를 모두 지원하며, Primary Key 설정 시 중복 데이터를 허용할 수 있다.

4️⃣ Standard TableIndex Access를 많이 활용하며, 대량의 데이터 처리 시 유용하다.

 


📍 Definition of Internal Tables with Global Types

1️⃣ Component는 열(Column)을 의미하며, Internal Table은 최대 6개 컴포넌트로 구성될 수 있다.

2️⃣ Internal Table 변수에는 n건의 데이터를 할당할 수 있다.

3️⃣ 변수명 규칙은 대부분 gt_로 시작하며, 테이블의 성격에 따라 뒤에 명칭을 붙인다.

  • 예: gt_flight, gt_customer, gt_order

se11에 데이터 타입에 해당 변수를 검색하면 해당 정보들을 찾아볼 수 있다

 


📍 Definition of Internal Tables with Local Types

  • Local Table Data Type 변수는 tt_로 시작한다.
  • 테이블 타입을 정의할 때 Standard Table, Sorted Table, 또는 Hashed Table 유형을 선택하고, 해당 테이블의 Line Type을 지정해야 한다.
  • Line Type은 보통 Structure Type을 사용하여 정의한다.

📍 Independent Definition of Internal Tables

  • Structure TypeLine Type으로 사용되어 테이블의 각 행의 데이터 구조를 정의한다.
  • Internal Table 선언 시 Structure Type을 기반으로 한 Table Type을 사용한다.
  • Structure Type을 사용하면 더 구조화된 데이터 관리가 가능하다.

📍  테이블 변수 선언 3가지_Possible Definitions of Internal Tables

1. 테이블 타입을 사용하여 선언하는 방법

  • Global 또는 Local로 선언된 Table Type(tt_)을 사용하여 변수를 선언할 수 있다.
  • Table Type은 테이블의 구조(Line Type)와 타입(테이블 종류)을 미리 정의한 데이터 타입이다.

➡️ 예시:

DATA: gt_flight TYPE tt_flight.   "Global Table Type 사용
DATA: it_customer TYPE tt_customer. "Local Table Type 사용


2. Structure Type을 사용하여 선언하는 방법

  • Structure Type을 직접 Line Type으로 사용하여 Internal Table을 선언할 수 있다.
  • 이 방법은 Global Structure Type 또는 Local Structure Type을 사용할 수 있다.

➡️ 예시:

DATA: it_flight TYPE TABLE OF ts_flight.   "Structure Type 사용


3. 직접 Line Type과 함께 선언하는 방법

  • Internal Table을 선언할 때 Line Type을 직접 명시할 수 있다.
  • 이때, TABLE OF 키워드를 사용하여 Structure Type을 라인 타입으로 설정한다.
  • Standard Table의 경우, STANDARD 키워드는 생략 가능하다.

➡️ 예시:

DATA: it_flight TYPE TABLE OF ts_flight.      "Standard Table 생략
DATA: it_customer TYPE STANDARD TABLE OF ts_customer. "Standard Table 명시


💡 핵심 요약

1️⃣ Table Type을 사용하여 변수를 선언할 수 있다. (Global/Local Table Type)

2️⃣ Structure Type을 사용하여 Internal Table을 선언할 수 있다.

3️⃣ TABLE OF 키워드를 사용하여 직접 Line Type과 함께 테이블을 선언할 수 있으며, STANDARD TABLE은 생략 가능하다.