λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] INTO CORRESPONDING FIELDS OF λž€? (예제 포함)

by Jay Din 2024. 4. 17.
728x90
λ°˜μ‘ν˜•

INTO CORRESPONDING FIELDS OF λž€?

ABAPμ—μ„œ `SELECT` 문을 톡해 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ‘°νšŒν•  λ•Œ `INTO CORRESPONDING FIELDS OF` μ ˆμ„ μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ˜ ν•„λ“œμ™€ 인터널 ν…Œμ΄λΈ”μ˜ ν•„λ“œλ₯Ό μ‰½κ²Œ 맀핑할 수 μžˆμŠ΅λ‹ˆλ‹€.

`INTO CORRESPONDING FIELDS OF` 을 μ‚¬μš©ν•˜λ©΄ λ§€ν•‘λœ λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” 값을 인터널 ν…Œμ΄λΈ”μ— μžλ™μœΌλ‘œ ν• λ‹Ήν•©λ‹ˆλ‹€.

 

CORRESPONDINGλŠ” 'μΌμΉ˜ν•˜λŠ”, μƒμ‘ν•˜λŠ”' μ΄λΌλŠ” λœ»μž…λ‹ˆλ‹€.

즉, μΌμΉ˜ν•˜λŠ” 컬럼λͺ…끼리 데이터λ₯Ό κ·ΈλŒ€λ‘œ λ³΅μ‚¬ν•΄μ„œ μ‚½μž…ν•œλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

 

INTO CORRESPONDING FIELDS OF μ˜ˆμ‹œ

`INTO CORRESPONDING FIELDS OF` μ ˆμ€ λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ˜ 인터널 ν…Œμ΄λΈ” 간에 같은 ν•„λ“œκ°€ μžˆλŠ” κ²½μš°μ—λ§Œ 맀핑이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

즉, ν•„λ“œ 이름이 μ„œλ‘œ λ‹€λ₯Έ κ²½μš°μ—λŠ” 맀핑이 λ˜μ§€ μ•ŠμœΌλ©°, ν•΄λ‹Ή ν•„λ“œμ— 데이터가 ν• λ‹Ήλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” `scustom`:
    • `NAME`(고객이름), `STREET`(상세 μ£Όμ†Œ), `LANGU`(μ–Έμ–΄ ν‚€)
  • 인터널 ν…Œμ΄λΈ” `customer_info`:
    • `NAME`(고객이름), `STREET`(상세 μ£Όμ†Œ), ` customer_ LANGU`(μ–Έμ–΄ ν‚€)

μœ„ ν…Œμ΄λΈ”μ„ 보면 `NAME`(고객이름), `STREET`(상세 μ£Όμ†Œ)만 ν•„λ“œ 이름이 κ°™μŠ΅λ‹ˆλ‹€.

μ•„λž˜μ—μ„œ μ‹€ν–‰ κ²°κ³Όλ₯Ό ν™•μΈν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

TYPES: BEGIN OF ty_customer_info,
         name           TYPE scustom-name,     " 고객 이름
         street         TYPE scustom-street,   " 상세 μ£Όμ†Œ
         customer_langu TYPE scustom-langu,    " μ–Έμ–΄ν‚€
       END OF ty_customer_info.

DATA: customer_info    TYPE TABLE OF ty_customer_info,  " 인터널 ν…Œμ΄λΈ” μ„ μ–Έ
      ls_customer_info TYPE ty_customer_info.  " ꡬ쑰체 μ„ μ–Έ

" λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ” 'scustom'μ—μ„œ 데이터λ₯Ό μ„ νƒν•˜μ—¬ 인터널 ν…Œμ΄λΈ” 'gt_customer_info'에 μ €μž₯
SELECT ID NAME STREET LANGU
  FROM scustom
  INTO CORRESPONDING FIELDS OF TABLE customer_info.

" gt_customer_info λ‚΄λΆ€ ν…Œμ΄λΈ”μ— μ €μž₯된 데이터λ₯Ό 좜λ ₯
LOOP AT customer_info INTO ls_customer_info.
  WRITE: / 'Customer Name:', ls_customer_info-name,
         / 'Customer Street:', ls_customer_info-street,
         / 'Customer langu:', ls_customer_info-customer_langu.
ENDLOOP.

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

 

μ‹€ν–‰ κ²°κ³Όλ₯Ό 보면, ν•„λ“œλͺ…이 같지 μ•Šμ€ langu κ°’λ§Œ ν• λ‹Ήλ˜μ§€ μ•Šμ€ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

데이터 μœ ν˜•μ΄ 같아도 값을 ν• λ‹Ήν• κΉŒ?

데이터 μœ ν˜•μ΄ κ°™λ‹€λ©΄ `INTO CORRESPONDING FIELDS OF` SQLμΏΌλ¦¬λ¬Έμ—μ„œ ν•„λ“œλͺ…을 맞좰주면 값을 ν• λ‹Ήν•œλ‹€.

μ•„λž˜ 뢀뢄을 μˆ˜μ •ν•œ ν›„ μ‹€ν–‰ν™”λ©΄μœΌλ‘œ ν™•μΈν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

* 인터널 ν…Œμ΄λΈ”μ˜ LANGU ν•„λ“œλͺ…(customer_langu)을 맞좰쀌
* -> LANGU as customer_langu
SELECT ID NAME STREET LANGU as customer_langu
  FROM scustom
  INTO CORRESPONDING FIELDS OF TABLE customer_info.

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

 

데이터 μœ ν˜•μ΄ κ°™λ‹€λ©΄, ν•„λ“œλͺ…을 인터널 ν…Œμ΄λΈ”κ³Ό κ°™κ²Œ 해쀬을 λ•Œ 데이터가 ν• λ‹Ήλœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

데이터 μœ ν˜•μ΄ κ°™μ§€λ§Œ, ν•„λ“œλͺ…이 λ‹€λ₯΄λ‹€λ©΄ 값이 ν• λ‹Ήλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 

INTO CORRESPONDING FIELDS OF κ°’ ν• λ‹Ή ν•„μˆ˜ 쑰건

  • 데이터 μœ ν˜• 일치
  • ν•„λ“œλͺ… 일치

 

 

728x90
λ°˜μ‘ν˜•