πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] TYPE κ³Ό TYPE TABLE OF λž€?

Jay Din 2024. 7. 10. 15:23
728x90
λ°˜μ‘ν˜•

TYPE κ³Ό TYPE TABLE OF μš”μ•½ 정리

TYPE 단일 데이터 ν•­λͺ©(λ³€μˆ˜ λ˜λŠ” ꡬ쑰체) μ„ μ–Έ
예: DATA: lv_carrid TYPE sflight-carrid.
TYPE TABLE OF λ™μΌν•œ ꡬ쑰의 μ—¬λŸ¬ 행을 μ €μž₯ν•  수 μžˆλŠ” 인터널 ν…Œμ΄λΈ” μ„ μ–Έ
예: DATA: lt_sflight TYPE TABLE OF sflight.

 

TYPE μ΄λž€?

TYPE ꡬ문은 단일 데이터 ν•­λͺ©(λ³€μˆ˜ λ˜λŠ” ꡬ쑰체)을 μ„ μ–Έν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

즉, 데이터 νƒ€μž…μ„ μ§€μ •ν•˜μ—¬ κ°œλ³„ ν•„λ“œλ‚˜ ꡬ쑰체λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.

 

예제

DATA: lv_carrid TYPE sflight-carrid.  " 단일 λ³€μˆ˜ μ„ μ–Έ
  • lv_carrid λŠ” sflight ν…Œμ΄λΈ”μ˜ carrid ν•„λ“œμ™€ 같은 데이터 νƒ€μž…μ„ κ°–λŠ” 단일 λ³€μˆ˜μž…λ‹ˆλ‹€.
TYPES: BEGIN OF ty_sflight,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
       END OF ty_sflight.

DATA: ls_sflight TYPE ty_sflight.  " ꡬ쑰체 μ„ μ–Έ
  • ty_sflight λΌλŠ” μ΄λ¦„μ˜ ꡬ쑰체 νƒ€μž…μ„ μ •μ˜ν•˜κ³ , 이λ₯Ό 기반으둜 ls_sflight λΌλŠ” 단일 ꡬ쑰체 λ³€μˆ˜λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€.

 

TYPE TABLE OF μ΄λž€?

TYPE TALBE OF ꡬ문은 인터널 ν…Œμ΄λΈ”μ„ μ„ μ–Έν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

인터널 ν…Œμ΄λΈ”μ€ λ™μΌν•œ ꡬ쑰의 μ—¬λŸ¬ 행을 μ €μž₯ν•˜λŠ” 데이터 κ΅¬μ‘°μž…λ‹ˆλ‹€.

DATA: lt_sflight TYPE TABLE OF sflight.  " ν…Œμ΄λΈ” μ„ μ–Έ
  • lt_sflight λŠ” sflight ν…Œμ΄λΈ”μ˜ ꡬ쑰λ₯Ό κ°€μ§„ μ—¬λŸ¬ 행을 μ €μž₯ν•  수 μžˆλŠ” 인터널 ν…Œμ΄λΈ”μž…λ‹ˆλ‹€.
TYPES: BEGIN OF ty_sflight,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
       END OF ty_sflight.

DATA: lt_sflight TYPE TABLE OF ty_sflight.  " ꡬ쑰체 ν…Œμ΄λΈ” μ„ μ–Έ
  • ty_sflight λΌλŠ” ꡬ쑰체 νƒ€μž…μ„ μ •μ˜ν•˜κ³  이λ₯Ό 기반으둜 μ—¬λŸ¬ 행을 μ €μž₯ν•  수 μžˆλŠ” 인터널 ν…Œμ΄λΈ” lt_sflight λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€.

 

TYPE κ³Ό TYPE TABLE OF μ‚¬μš© μ˜ˆμ‹œ

λ‹€μŒμ€ SFLIGHT ν…Œμ΄λΈ”μ˜ 데이터λ₯Ό 단일 λ³€μˆ˜μ™€ 인터널 ν…Œμ΄λΈ”μ— μ €μž₯ν•˜κ³  좜λ ₯ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

* 단일 λ³€μˆ˜ μ„ μ–Έ
DATA: LV_CARRID TYPE SFLIGHT-CARRID.

* 인터널 ν…Œμ΄λΈ” μ„ μ–Έ
DATA: LT_SFLIGHT TYPE TABLE OF SFLIGHT,
      WA_SFLIGHT TYPE SFLIGHT.

" 단일 λ³€μˆ˜μ— κ°’ ν• λ‹Ή
SELECT SINGLE CARRID
  INTO LV_CARRID
  FROM SFLIGHT
  WHERE CARRID = 'LH'.

" 인터널 ν…Œμ΄λΈ”μ— 데이터 μ €μž₯
SELECT *
  INTO TABLE LT_SFLIGHT
  FROM SFLIGHT
  WHERE CARRID = 'LH'.

" 단일 λ³€μˆ˜ 좜λ ₯
WRITE: / 'Single carrid:', LV_CARRID.

" 인터널 ν…Œμ΄λΈ” 데이터 좜λ ₯
LOOP AT LT_SFLIGHT INTO WA_SFLIGHT.
  WRITE: / WA_SFLIGHT-CARRID, WA_SFLIGHT-CONNID, WA_SFLIGHT-FLDATE.
ENDLOOP.

μ‹€ν–‰ ν™”λ©΄

 

이 예제λ₯Ό 톡해 TYPE κ³Ό TYPE TABLE OF 의 차이점을 μ΄ν•΄ν•˜κ³ , 각각의 ꡬ문이 μ–΄λ–»κ²Œ μ‚¬μš©λ˜λŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

TYPE 은 단일 데이터 ν•­λͺ©μ„ μ„ μ–Έν•œλŠ”λ° μ‚¬μš©λ˜κ³ , TYPE TABLE OF λŠ” μ—¬λŸ¬ 행을 μ €μž₯ν•  수 μžˆλŠ” 인터널 ν…Œμ΄λΈ”μ„ μ„ μ–Έν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

 

 

728x90
λ°˜μ‘ν˜•