안녕하세요?
아래 쿼리 구문중 오류가 나타나서 문의 드립니다.
SELECT C~WERKS AS STOREID
C~BUDAT
C~POSNO
C~BILLNO
C~MATNR
D~ZARTICLE_TEXT
C~SALETYPE
C~QTY
C~AMT
INTO CORRESPONDING FIELDS OF TABLE IT_POS_DETAIL
FROM TABLE_A AS C
JOIN TABLE_B AS D
ON C~MATNR = D~ZARTICLE
FOR ALL ENTRIES IN IT_POSOFFER_DETAIL
WHERE C~WERKS = IT_POSOFFER_DETAIL-STOREID
AND C~BUDAT = IT_POSOFFER_DETAIL-BUDAT
AND C~POSNO = IT_POSOFFER_DETAIL-POSNO
AND C~BILLNO = IT_POSOFFER_DETAIL-BILLNO.
위 구문인데요,
참고로 IT_POSOFFER_DETAIL 인터널 테이블에는 데이터가 없습니다. ㅜㅜ;
FOR ALL ENTRIES 문 쓸때 인터널 테이블에 데이터가 없으면 그냥 넘어가야 하는거 아닌가요?
디버깅 해보면 한참 위 쿼리에서 멈춰져 있다가,
첨부한 이미지와 같은, 덤프도 아닌 시스템 메시지가 나타납니다.
ST22 가보면 덤프도 없구요.
다섯번을 수행해도 전부 같네요.
혹시 관련 팁 아시는 분 있으시면 도움 부탁드립니다.
댓글 4
-
도사05
2010.09.28 19:11
-
버미!
2010.09.28 19:26
For all의 단점이기도 하죠..만약 For all의 테이블에 데이타가 없는 경우 Join 한 테이블 전체를 뒤집니다.
그러니 시간이 오래 걸리겠구.. 그래서 세션 아웃이 된거라 사료됩니다.
-
나만고양이
2010.09.28 20:03
도사05님, 버미!님 답변 감사드립니다.
덕분에 의문도 모두 깔끔하게 해소되고 수정도 잘 처리되었습니다.
복받으실거예요~ ^^
-
미르모
2010.09.28 23:33
저도 첨에 for all 써서 황당했떤게...데이타 없는 상태에서 for all걸면 table 전체걸리더라구요^^
for all 걸기전엔 항상 if ITAB[] is initial. 체크하는거 중요해요 ㅋㅋ
수고하세요
Session 종료는 프로그램을 Foreground 실행시 아무 작업없이 일정시간이 지나면 발생합니다.
위에서 Query가 실행되는 동안 아무런 Action이 없기 때문입니다.
따라서 Query를 튜닝하셔야 될 듯 싶습니다.
그럼 즐프하세요