✅ 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 Table은 Index Access와 Key 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 Table은 Index Access와 Key Access를 모두 지원하며, Primary Key 설정 시 중복 데이터를 허용할 수 있다.
4️⃣ Standard Table은 Index 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
📍 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 Type은 Line 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은 생략 가능하다.
'SAP ABAP > 기본' 카테고리의 다른 글
Internal Tables (인터널 테이블) 정렬(sort), 삭제 및 요약 정리 (0) | 2025.01.27 |
---|---|
Internal Tables (인터널 테이블) 추가, 수정 및 Loop문을 통해 Access하는 방법 (0) | 2025.01.27 |
Structures Variable (스트럭쳐 타입) (0) | 2025.01.26 |
Function Module(함수 모듈) 생성 및 사용 방법 (0) | 2025.01.21 |
서브루틴 (Subroutine)과 파라미터 전달 방식 (CALL BY REFERENCE / RESULT / VALUE / USING / CHANGING) (0) | 2025.01.21 |