์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- qas
- ๋๋น์ฐ์ ํ์
- select
- ์คํธ๋ญ์ฒ
- Internal Table
- call function
- ์ด๋ถํ์
- PRD
- subscreen
- structure
- t์ฝ๋
- ABAP
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐฉํฅํ์
- Export
- screen program
- Function Module
- ์ค๋ฒ2
- abap dictionary
- dev
- Import
- SAP
- ๊น์ด์ฐ์ ํ์
- ๋ชจ๋ํ
- ์ค๋ฒ3
- ๋จ๋ฐฉํฅํ์
- modify
- screen
- ๋ฐฑ์ค
- tasknumber
- Today
- Total
CS Studentโs SAP&Tech Journey๐ซ
[SAP] ์ธํฐ๋ ํ ์ด๋ธ(Internal Table) (3) ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ์ฝ๊ธฐ ๋ณธ๋ฌธ
[SAP] ์ธํฐ๋ ํ ์ด๋ธ(Internal Table) (3) ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ์ฝ๊ธฐ
์ธํฌ๋งํฑ 2025. 2. 7. 21:28SAP ABAP์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ธํฐ๋ ํ
์ด๋ธ(Internal Table, IT)์ ํ์์ ์ธ ๊ฐ๋
์
๋๋ค.
์ธํฐ๋ ํ
์ด๋ธ์ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ํ
์ด๋ธ๋ก, ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅํ๊ณ ์กฐ์ํ๋ ๋ฐ ํ์ฉ๋ฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
์ธํฐ๋ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จ๋ ํฌ์คํ
๋ณด๋ฌ๊ฐ๊ธฐโฌ๏ธ
ABAP ํ๋ก๊ทธ๋๋ฐ: ์ธํฐ๋ ํ ์ด๋ธ(Internal Table) (2) ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์ ํ๊ธฐ
SAP ABAP์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ธํฐ๋ ํ ์ด๋ธ(Internal Table, IT)์ ํ์์ ์ธ ๊ฐ๋ ์ ๋๋ค. ์ธํฐ๋ ํ ์ด๋ธ์ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ํ ์ด๋ธ๋ก, ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก
informatik.tistory.com
1. READ TABLE์ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ฝ๊ธฐ
ํน์ ํ ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ด๋ฉฐ, Index ๋๋ Key๋ฅผ ์ด์ฉํด์ ๊ฒ์ํ๋ค.
โ READ TABLE (INDEX ๋ฐฉ์ - ์์น๋ก ๋ฐ์ดํฐ ์กฐํ)
READ TABLE gt_flight INTO gw_flight INDEX 2. "INDEX 2์ ํด๋นํ๋ ๋ฐ์ดํฐ๊ฐ gw_flight์ ๋ด๊ธด๋ค.
WRITE: / gw_flight-carrid, gw_flight-connid.
๐ ํน์ง
- ์ธ๋ฑ์ค(Index)๋ 1๋ถํฐ ์์
- ์ ๋ ฌ ์์์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์์
- ๋ฐ์ดํฐ๊ฐ ํญ์ ๊ฐ์ ์์น์ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅ
โ READ TABLE (KEY ๋ฐฉ์ - ํน์ ๊ฐ์ผ๋ก ์กฐํ)
READ TABLE gt_flight INTO gw_flight WITH KEY carrid = 'AA'.
WRITE: / gw_flight-carrid, gw_flight-connid.
๐ ํน์ง
- ํน์ ํค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์
- Hashed Table ๋๋ Sorted Table์์ ๋น ๋ฅธ ๊ฒ์ ๊ฐ๋ฅ
- ์ค๋ณต๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ฐํ
2. LOOP AT์ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ฝ๊ธฐ
์ธํฐ๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ฝ์ด์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ฉฐ, ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง ํํฐ๋ง ๊ฐ๋ฅํฉ๋๋ค.
โ LOOP AT (์ ์ฒด ๋ฐ์ดํฐ ์กฐํ)
LOOP AT gt_flight INTO gw_flight.
WRITE: / gw_flight-carrid, gw_flight-connid.
ENDLOOP.
๐ ํน์ง
- ํน์ ํค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์
- Hashed Table ๋๋ Sorted Table์์ ๋น ๋ฅธ ๊ฒ์ ๊ฐ๋ฅ
- ์ค๋ณต๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ฐํ
โ LOOP AT (WHERE ์กฐ๊ฑด์ ํ์ฉํ ํํฐ๋ง)
LOOP AT gt_flight INTO gw_flight WHERE percentage > '90.00'.
WRITE: / gw_flight-carrid, gw_flight-connid, gw_flight-percentage.
ENDLOOP.
๐ ํน์ง
- ํน์ ์กฐ๊ฑด(WHERE)์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง ์ฝ์ ์ ์์
- ์ฝ๊ธฐ ์ฑ๋ฅ์ด ํฅ์๋จ (๋ถํ์ํ ๋ฐ์ดํฐ ์ ์ธ ๊ฐ๋ฅ)
3. SELECT INTO TABLE์ ํ์ฉํ ๋ฐ์ดํฐ ์ฝ๊ธฐ (DB ์กฐํ ํ ์ธํฐ๋ ํ ์ด๋ธ์ ์ ์ฅ)
๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ธํฐ๋ ํ ์ด๋ธ์ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
โ SELECT INTO TABLE์ ์ฌ์ฉํ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
SELECT * FROM SFLIGHT INTO TABLE gt_flight WHERE CARRID = 'AA'.
๐ ํน์ง
- DB์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ธํฐ๋ ํ ์ด๋ธ์ ์ฑ์
- ์กฐ๊ฑด(WHERE)์ ์ฌ์ฉํด ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ฌ ์ ์์
- ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํจ์จ์
4. ์ ํธ ํด๋์ค๋ฅผ ํ์ฉํ ์ธํฐ๋ ํ ์ด๋ธ ์ฝ๊ธฐ (cl_demo_output)
์ธํฐ๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ค. ๋๋ฒ๊น ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๋ค.
cl_demo_output=>display_data( gt_flight ). " ์ธํฐ๋ ํ
์ด๋ธ ์ ์ฒด ๋ฐ์ดํฐ ์ถ๋ ฅ
๐ ํน์ง
- ์ฝ๋ ํ ์ค๋ก ํ ์ด๋ธ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ ๊ฐ๋ฅ
- ๊ฐ๋ณ WRITE ์์ด ์๋์ผ๋ก ์ ๋ฆฌ๋ ํฌ๋งท ์ ๊ณต
- ๋๋ฒ๊น ์ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
5. FOR ALL ENTRIES์ ํ์ฉํ ๋ฐ์ดํฐ ์ฝ๊ธฐ (๋๋ ๋ฐ์ดํฐ ์กฐํ ์ต์ ํ)
์ธํฐ๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ค.
โ FOR ALL ENTRIES๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ํํฐ๋ง
SELECT * FROM SFLIGHT INTO TABLE gt_flight
FOR ALL ENTRIES IN gt_request
WHERE CARRID = gt_request-carrid.
๐ ํน์ง
- ์ธํฐ๋ ํ ์ด๋ธ(gt_request)๊ณผ ๋งค์นญ๋๋ ๋ฐ์ดํฐ๋ง DB์์ ๊ฐ์ ธ์ฌ ์ ์์
- JOINS๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ํ ์ด๋ธ ๊ฐ ๊ด๊ณ๋ฅผ ์ค์ ๊ฐ๋ฅ
6. ์ ๋ฆฌ
๋ฐฉ๋ฒ | ์ค๋ช | ํน์ง |
1. READ TABLE (INDEX ๋ฐฉ์) | ํน์ ์์น(Index)์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ | ๋ฐ์ดํฐ ์์น๋ฅผ ์๊ณ ์์ ๋ ์ ์ฉ |
2. READ TABLE (KEY ๋ฐฉ์) | ํน์ ํค ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ | Sorted / Hashed Table์์ ๋น ๋ฆ |
3. LOOP AT | ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฝ์ | ์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ํํฐ๋ง ๊ฐ๋ฅ |
4. SELECT INTO TABLE | DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ธํฐ๋ ํ ์ด๋ธ๋ก ์ ์ฅ | SQL์ ์ฌ์ฉํด ํจ์จ์ ๊ฒ์ ๊ฐ๋ฅ |
5. FOR ALL ENTRIES | ์ธํฐ๋ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก DB ์กฐํ | ๋๋ ๋ฐ์ดํฐ ์กฐํ ์ ์ต์ ํ ๊ฐ๋ฅ |
6. ์ ํธ (cl_demo_output) | ์ธํฐ๋ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅ | ๋๋ฒ๊น ๋ฐ ๋ฐ์ดํฐ ํ์ธ์ ์ ์ฉ |
๐ก ์ธํฐ๋ ํ
์ด๋ธ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋? โ READ TABLE WITH KEY
๐ก ์ธํฐ๋ ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋? โ LOOP AT
๐ก DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ธํฐ๋ ํ
์ด๋ธ์ ์ ์ฅํ ๋? โ SELECT INTO TABLE
๐ก ์ธํฐ๋ ํ
์ด๋ธ์ ๊ธฐ์ค์ผ๋ก DB ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋? โ FOR ALL ENTRIES
๐ก ๋๋ฒ๊น
๋ฐ ๋ฐ์ดํฐ ์ถ๋ ฅ์ด ํ์ํ ๋? โ cl_demo_output=> display_data()
๐ฏ ํท๊ฐ๋ฆฌ๋ ํฌ์ธํธ
- SELECT โ DB์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ฝ์ด์ค๋ ๊ฒ
- READ TABLE โ ์ด๋ฏธ ์์ฑ๋ ์ธํฐ๋ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ(๋ฉ๋ชจ๋ฆฌ(์ธํฐ๋ ํ ์ด๋ธ) ์กฐํ)