SAP공장

[ABAP] For all entries in 본문

[SAP]ABAP/ABAP 기술 면접

[ABAP] For all entries in

ABAP,ODATA,BTP 2025. 7. 3. 09:09
반응형

Q. For all Entries in 이란?

=> FOR ALL ENTRIES IN은  내부 테이블의 값을 기반으로 SELECT문을 실행할 때 사용하는 SQL 구문.

즉, 여러 조건을 한 번에 처리하기 위한 일종의 대량 조건 처리 방식

 

[주의 사항]

1. 내부 테이블이 비어 있으면, 전체 데이터를 가져온다

=> itab initial check를 진행한다.

 

<해결 방법>

IF itab IS NOT INITIAL.
  SELECT ... FROM dbtab INTO TABLE result
    FOR ALL ENTRIES IN itab
    WHERE ... .
ENDIF.

 

2. 중복 제거  (DISTINCT 사용 불가, 내부적으로 중복제거)

=>Select 시 기준이 되는 필드를 명시하자

 

<해결 방법>

select a~connid,
          a~carrid
  from sbook as a
FOR ALL ENTRIES IN  @lt_sflight
  where a~connid @lt_sflight-connid

into TABLE @DATA(lt_test).

 

3. where절의 조건은 정확히 일치해야 한다.

 

=> WHERE 절과  itab의 필드와 정확히 일치

 

<해결 방법>

SELECT * FROM mara INTO TABLE lt_mara
  FOR ALL ENTRIES IN lt_matnr
  WHERE matnr = lt_matnr-matnr.

 

 

4. 필드 타입 제한

=> LIKE, BETWEEN, IN과 같은 비교 연산자는 사용 불가

=> Select 내 CASE 문도 사용 불가

 

5. 대용량 테이블 주의

=> 내부 테이블의 크기가 클수록 쿼리 성능이 저하

 

 

 

 

반응형

'[SAP]ABAP > ABAP 기술 면접' 카테고리의 다른 글

[ABAP] SAP Memory VS ABAP Memory  (0) 2025.07.16
Function Module Exit  (0) 2023.07.03
[ABAP]Update, Modify 시 꼭 sy-subrc를 check  (0) 2022.11.16
Field-symbol  (0) 2022.11.07
ABAP PROCESS, RFC, MESSAGE , OPEN SQL(CRUD) 정리  (0) 2022.11.07
Comments