체크를 두개한 경우 마지막 선택항목만 남은 문제 처리:
DO
select * from sflight INTO TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
PERFORM display_sflight.
ENDDO.
DO
select * from sflight APPENDING TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
ENDDO.
PERFORM display_sflight.
어떻게 이해하면 될까요?? ㅜㅜ
댓글 3
-
kkamui
2008.12.09 02:22
-
kkamui
2008.12.09 02:27
DATA L_TABIX LIKE SY-TABIX.
DO
select * from sflight INTO TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
ENDDO.
DESCRIBE TABLE IT2 LINES L_TABIX.
WRITE :/05 'INTO TABLE' COLOR 4, L_TABIX COLOR 7. SKIP.
DO
select * from sflight APPENDING TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
ENDDO.
DESCRIBE TABLE IT2 LINES L_TABIX.
WRITE :/05 'APPENDING TABLE' COLOR 4, L_TABIX COLOR 7. SKIP.
DO
select * from sflight APPENDING TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
ENDDO.
DESCRIBE TABLE IT2 LINES L_TABIX.
WRITE :/05 'APPENDING TABLE' COLOR 4, L_TABIX COLOR 7. SKIP.
DO
select * from sflight INTO TABLE it2 WHERE carrid = wa1-carrid
AND connid = wa1-connid.
ENDDO.
DESCRIBE TABLE IT2 LINES L_TABIX.
WRITE :/05 'INTO TABLE' COLOR 4, L_TABIX COLOR 7. SKIP. -
지의
2008.12.10 17:09
into 를 만나면 찾아온 데이타를 구조 또는 인터널 테이블에 넣을 때 해당 오브젝트를 clear 해 줍니다.
appending 을 만나면 찾아온 데이타를 구조 또는 인터널 테이블의 맨 마지막 줄부터 추가를 하게 됩니다.
into 를 사용하면 매번 쿼리마다 새로운 데이타를 사용하기 때문에 기존 데이타가 삭제가 됩니다.
appending 은 기존 데이타를 보존하고자 할 때 사용합니다.
퍼포먼스는 appending 이 느린걸로 알고 있습니다.
1. 디버깅을 떠보시면서 첫번째 DO 문이 끝날때 건수를 확인하시구 두번째 DO 문이 끝나구 건수를 확인해 보세요 .
2. 첫번째 DO 문을 주석처리하시고 , 두번째 DO 문을 카피해서 셀렉트를 한번더 해보세요 . 물론 건수 확인하시구요.
3. 이제 마지막에 주석 처리한 첫번째 DO 문을 소스 마지막에 붙이셔서 실행해 보시면서 건수를 확인해 보세요 .
천천히 하시다 보면 차이점이 무엇인지 아실거예요 ^^ .
한번 지나가는 조언은 금방 잊어 먹어요 . 삽질을 하면 오래갑니다. ^^;;;