Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 엑소버드
- ALV
- 스마트폼
- KOSA
- fi
- List box
- 오라클 함수
- Standard Function
- Enhancement
- ABAP
- 유닉스
- selection screen
- 이명박
- gimp
- 머니플랜
- 가계부
- ole
- 동적 쿼리
- sapa
- Java
- EXIT
- UTF-8
- FI 용어정리
- function
- EUC-kr
- alv 정형화
- 방화벽
- badi
- SAP
- Smart Forms
Archives
- Today
- Total
Drunken Lion
Select ... into table ... 본문
Select 를 할때, Select ... Endselect. 로
건건히 DB 에 접근하는 방법도 있지만, INTO TABLE 또는 ,
APPEND TABLE , INTO CORRESPONDING FIELD OF TABLE 구문을 사용하면,
좀더 나은 퍼포먼스를 낼 수 있다.
전자의 경우는 데이터를 한건씩 가져오고 조건에 맞는 데이터가 없을 때까지
계속 LOOP 돌면서 데이터를 가져오게 되지만,
후자는 조건에 만족하는 데이터를 통채로 옯겨오게 되므로, DB Access 가 훨씬 줄어든다.
난 주로 APPENDING CORRESPONDING FIELDS OF TABLE itab 구문을 선호한다.
하지만 db 의 field 명과 internal table 에 필드명이 다를 경우는 select 되지 않는다.
예를 들어 DB : DBTAB-FDB1 , DBTAB-FDB2 라는 테이블을 select 해서
internal table ITAB-FIT1 , ITAB-FIT2 라는 field에 넣어야 한다면 ... corresponding 구문을 사용하면 데이터가 추출되지 않을 것이다.
드믈지만 여러 테이블을 조인 하거나, 동일한 조건으로 여러 테이블에서 데이터를
가져오는 경우에는 발생할 수 있는 상황이다.
방법은 두가지가 있다.
2번의 구문처럼 AS 라는 명령어를 이용하면 Endselect 구문을 사용하지 않을 수 있다.
건건히 DB 에 접근하는 방법도 있지만, INTO TABLE 또는 ,
APPEND TABLE , INTO CORRESPONDING FIELD OF TABLE 구문을 사용하면,
좀더 나은 퍼포먼스를 낼 수 있다.
전자의 경우는 데이터를 한건씩 가져오고 조건에 맞는 데이터가 없을 때까지
계속 LOOP 돌면서 데이터를 가져오게 되지만,
후자는 조건에 만족하는 데이터를 통채로 옯겨오게 되므로, DB Access 가 훨씬 줄어든다.
난 주로 APPENDING CORRESPONDING FIELDS OF TABLE itab 구문을 선호한다.
하지만 db 의 field 명과 internal table 에 필드명이 다를 경우는 select 되지 않는다.
예를 들어 DB : DBTAB-FDB1 , DBTAB-FDB2 라는 테이블을 select 해서
internal table ITAB-FIT1 , ITAB-FIT2 라는 field에 넣어야 한다면 ... corresponding 구문을 사용하면 데이터가 추출되지 않을 것이다.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE itab
FROM dbtab
WHERE ...
FROM dbtab
WHERE ...
드믈지만 여러 테이블을 조인 하거나, 동일한 조건으로 여러 테이블에서 데이터를
가져오는 경우에는 발생할 수 있는 상황이다.
방법은 두가지가 있다.
1. SELECT fdb1 fdb2 INTO (itab-fit1, itab-fit2)
FROM dbtab
WHERE ...
APPEND itab.
ENDSELECT.
앞서 설명한 대로, 이 방법은 퍼포먼스가 저하된다.FROM dbtab
WHERE ...
APPEND itab.
ENDSELECT.
2. SELECT fdb1 AS fit1
fdb2 as fit2
APPENDING CORRESPONDING FIELDS OF TABLE itab
FROM dbtab
WHERE ...
fdb2 as fit2
APPENDING CORRESPONDING FIELDS OF TABLE itab
FROM dbtab
WHERE ...
2번의 구문처럼 AS 라는 명령어를 이용하면 Endselect 구문을 사용하지 않을 수 있다.
'SAP > ABAP' 카테고리의 다른 글
SAP GUI Download 방법 (3) | 2007.12.21 |
---|---|
개발시 필요한 T-code (0) | 2007.12.18 |
문자열 자를 때 자르는 위치에 2BYTE문자가 있는지를 체크하는 방법입니다. (0) | 2007.12.14 |
질문:bseg테이블에 있는 wbs code값을 어떻게 가져올수있나요? (0) | 2007.11.22 |
loop at ... -> M1 (0) | 2007.11.12 |