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 |