NativeSQL ( 책에서는 Oracle DB )

  • ABAP 프로그램에서는 NativeSQL은 OpenSQL에 비해 자주 사용되지는 않지만

  • OpenSQL에서 지원하지 않는 다양하고 복잡한 SQL을 사용할 수 있다.

  • 장점

    • ABAP Dictionary에 생성되지 않은 테이블에 접근할 수 있다.
    • 데이터베이스 의존 SQL구문이므로 OPEN SQL에서는 구현할 수 없는 SQL 가능!
  • 단점

    • EXEC ~ ENDEXEC 사이의 구문 점검이 수행되지 않아 DUMP Error가 발생 가능

    • NATIVE SQL이 포함된 ABAP프로그램은 다른 DB를 사용하는 환경에는 적용할 수 없다.

    • Client를 구분하는 MANDT 필드를 SQL 구문 내에 반드시 포함해야 함

      ※MANDT


기본구문

EXEC SQL.
    <NATIVE SQL statement>
ENDEXEC.
  • EXEC SQL로 시작해서 ENDEXEC. 로 종료
  • 변수명 앞에는 : 콜론 사용

PERFORMING 구문

  • 한 번에 여러 개의 데이터를 IT에 삽입
EXEC SQL PERFORMING <form>.
    <NATIVE SQL statement.
ENDEXEC.

JOIN 구문

EXEC SQL.
    ...
    FROM TABLE1 A, TABLE2 B
    WHERE A.MANDT = B.MANDT
        AND A.CARRID = B.CARRID
        AND A.MANDT = :SY-MANDT
        AND A.CARRID = :GV_CARRID
    ...
ENDEXEC.
  • OUTER JOIN을 사용하려면
EXEC SQL.
    ...
    FROM TABLE1 A, TABLE2 B
    WHERE A.MANDT(+) = B.MANDT
        AND A.CARRID(+) = B.CARRID
        AND A.MANDT = :SY-MANDT
        AND A.CARRID = :GV_CARRID
    ...
ENDEXEC.

SUBSTRING 구문

LV_CHAR = ABCDE "일때 BC를 추출하려면

* 아밥에서는
LV_CHAR+2(2)

* 오라클 NATIVE SQL에서는
SUBSTR( LV_CHAR, 2, 2)

Fetch Size

  • *보다는 개별 필드를 SELECT 하는것이 효과적
  • Fetch Size는 Oracle DB에서 사용하는 기술로 테이블에서 데이터를 가져와 Buffer Cache에 저장하고 나서 Fetch Size만큼 논리적인 단위로 읽기를 수행하는 방법

'SAP > Easy ABAP' 카테고리의 다른 글

Ch 04 FUNCTION  (0) 2021.02.02
Ch 04 Modularization  (0) 2021.01.26
Ch 03 OPEN SQL & NATIVE SQL - 2  (0) 2021.01.14
Ch 03 OPEN SQL & NATIVE SQL - 1  (0) 2021.01.12
Ch 02 Data Type - 2  (0) 2021.01.08

+ Recent posts