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

[SAP ABAP] SELECT SINGLE μ΄λž€

by Jay Din 2023. 11. 3.
728x90
λ°˜μ‘ν˜•

SINGLE ν‚€μ›Œλ“œ λž€?

쑰회 쑰건에 λΆ€ν•©ν•˜λŠ” 첫 번째 λ ˆμ½”λ“œλ§Œ 결과둜 λ°˜ν™˜ν•©λ‹ˆλ‹€.

쑰회 쑰건은 ITAB ν˜•νƒœμΌ 수 μ—†κ³ , ENDSELECT ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ SQL을 λ°˜λ³΅ν•  μˆ˜λ„ μ—†μŠ΅λ‹ˆλ‹€.

 

μ£Όμ˜μ‚¬ν•­

SINGLE ν‚€μ›Œλ“œλŠ” μ •ν™•νžˆ ν•˜λ‚˜μ˜ ν–‰λ§Œ 가지고 였기 μœ„ν•΄ μ„€κ³„λ˜μ—ˆκΈ° λ•Œλ¬Έμ— μ•„λž˜ 쑰건을 μΆ©μ‘±ν•˜μ§€ μ•Šμ„ 땐 μ‚¬μš©μ„ μ§€μ–‘ν•˜λŠ” 게 μ’‹μŠ΅λ‹ˆλ‹€.

  1. μ‘°νšŒν•˜λŠ” DBTAB의 λͺ¨λ“  ν‚€ ν•„λ“œλ₯Ό WHEREμ ˆμ— λͺ…μ‹œν•  것
    • SINGLE ν‚€μ›Œλ“œμ˜ 섀계 λͺ©μ μ„ μ •ν™•νžˆ μΆ©μ‘±μ‹œν‚€κΈ° μœ„ν•΄μ„  λͺ¨λ“  ν‚€ ν•„λ“œμ˜ 쑰건이 μ§€μ •λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
  2. ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ„ λŒ€μƒμœΌλ‘œ μ‘°νšŒν•  것
    • 쑰인 λ“±μ˜ κ²°ν•© μ‚¬μš© μ‹œ 결합을 ν•΄ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”λ‘œ λ§Œλ“  λ’€ μˆœμ„œλŒ€λ‘œ 행을 νƒμƒ‰ν•˜λŠ” 게 μ•„λ‹ˆλΌ 각각의 ν…Œμ΄λΈ”μ„ νƒμƒ‰ν•˜λ©° 쑰건을 λͺ¨λ‘ μΆ©μ‘±ν•˜λŠ” 행을 찾은 λ‹€μŒμ— ν…Œμ΄λΈ”μ„ κ²°ν•©μ‹œν‚€κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

 

SINGLE μ‚¬μš© 이유

SINGLE ν‚€μ›Œλ“œλŠ” SAP ABAP ν”„λ‘œκ·Έλž˜λ°μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€ μ•‘μ„ΈμŠ€λ₯Ό λ‹¨μˆœν™”ν•˜κ³  μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.

 

  1. μ„±λŠ₯ ν–₯상:
    • SINGLE ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λΆˆν•„μš”ν•œ λ ˆμ½”λ“œλ₯Ό κ°€μ Έμ˜€μ§€ μ•Šκ³  ν•„μš”ν•œ ν•œ 개의 λ ˆμ½”λ“œλ§Œμ„ μ„ νƒν•˜λ―€λ‘œ λ°μ΄ν„°λ² μ΄μŠ€ μ•‘μ„ΈμŠ€μ˜ μ„±λŠ₯을 ν–₯상 μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 특히 λŒ€κ·œλͺ¨ ν…Œμ΄λΈ”μ—μ„œ 데이터λ₯Ό 검색할 λ•Œ νš¨κ³Όμ μž…λ‹ˆλ‹€.
  2. 쀑볡 방지:
    • SINGLE ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μΌμΉ˜ν•˜λŠ” 쑰건을 λ§Œμ‘±ν•˜λŠ” λ ˆμ½”λ“œκ°€ μ—¬λŸ¬ 개일 λ•Œ 첫 번째 λ ˆμ½”λ“œλ§Œ μ„ νƒλ˜λ―€λ‘œ μ€‘λ³΅λœ 데이터λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 데이터 일관성을 μœ μ§€ν•˜λŠ”λ° 도움이 λ©λ‹ˆλ‹€.
  3. ν”„λ‘œκ·Έλž¨ 논리 μ΅œμ†Œν™”:
    • κ°œλ°œμžκ°€ λͺ…μ‹œμ μœΌλ‘œ 단일 λ ˆμ½”λ“œλ₯Ό μ„ νƒν•œλ‹€λŠ” 것을 λ‚˜νƒ€λ‚΄λ―€λ‘œ ν”„λ‘œκ·Έλž¨μ˜ μ˜λ„κ°€ λͺ…ν™•ν•΄μ§‘λ‹ˆλ‹€. μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ΄ ν•΄λ‹Ή SELECT 문을 λ³΄κ³ μ„œ λ°μ΄ν„°λ² μ΄μŠ€λ‘œλΆ€ν„° ν•˜λ‚˜μ˜ λ ˆμ½”λ“œλ§Œμ„ μ„ νƒν•œλ‹€λŠ” 것을 μ‰½κ²Œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 였λ₯˜ 방지:
    • SINGLE ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€λ‘œλΆ€ν„° μ—¬λŸ¬ λ ˆμ½”λ“œκ°€ λ°˜ν™˜λ  κ°€λŠ₯성이 μžˆλŠ” μƒν™©μ—μ„œ 였λ₯˜λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€. 데이터가 μ˜ˆμƒλ³΄λ‹€ 많이 λ°˜ν™˜λ˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ™μž‘μ„ ν•  수 μžˆμœΌλ―€λ‘œ 이λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

728x90

 

SINGLE μ‚¬μš© μ˜ˆμ‹œ

TYPES: BEGIN OF ty_scarr,
          nandt TYPE SCARR-MANDT,
         carrid TYPE SCARR-CARRID,
         carrname TYPE SCARR-CARRNAME,
         url TYPE SCARR-URL,
         currency TYPE SCARR-CURRCODE,
       END OF ty_scarr.

DATA: ls_scarr TYPE ty_scarr.

PARAMETERS: p_carrid TYPE SCARR-CARRID.

START-OF-SELECTION.

  " Using SINGLE keyword
  SELECT SINGLE * FROM SCARR INTO ls_scarr
    WHERE CARRID = p_carrid.

  IF sy-subrc = 0.
    " If record found, display airline details
    WRITE: / 'Airline ID:', ls_scarr-carrid,
           / 'Airline Name:', ls_scarr-carrname,
           / 'URL:', ls_scarr-url,
           / 'Currency:', ls_scarr-currency.
  ELSE.
    " If record not found, display message
    WRITE: / 'Airline with ID', p_carrid, 'not found.'.
  ENDIF.

 

` scarr ` ν…Œμ΄λΈ”μ€ SAP에 기본으둜 μžˆλŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€.

λ§Œμ•½ μ€‘λ³΅λ˜λŠ” ` CARRID `κ°€ μžˆλ‹€λ©΄ 첫 번째둜 쑰회된 λ ˆμ½”λ“œκ°€ 좜λ ₯λ©λ‹ˆλ‹€. 

728x90
λ°˜μ‘ν˜•