<ABAP> 쉽고 간단하게 배우는 기초 ABAP 03편 (기초선언+데이터담기)
이전편에 이어서...
https://nightsforu.tistory.com/m/521
위 선언부터 보고 와야 이어진다....
자 그럼 위에 선언해서 만든 바구니에 데이터를 담아야 한다....
자 3종류의 인터널테이블(사실 다 똑같이생긴 바구니) 에 똑같은 쿼리로 담아보자...
뭐 바구니가 다르면 안담기거나 덤프가 나야겠지?
시도해보자
(폰으로 써서 오타가 있어도 이해를.. 아래 사진참조)
SELECT * FROM sflight INTO TABLE gt_sfli2.
SELECT * FROM sflight INTO TABLE gt_sfli2.
SELECT * From sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
위에 처럼 쿼리를 날리고 바구니에 총 몇건이 들어있는지 write 문으로 출력해보았다...
1. 잘 담기고 2. 건수가 같으면
뭐 잘만든게 되겠지?
셋다 407건.. 문제 없이 담겨있다.
즉, 저 다른 방식의 선언문 자체는 다 똑같이 담아줄 바구니를 가지고 있다. 3번만 빼고...
3번은 우리가 begin of~~~ 로 해서 4개의 필드만 있는 바구니를 만들었지?? 그러니 내부모양은 다르단 뜻이다.
그럼 디버깅을 해서 내부를 구경해보자
(SAP의 막강한 기능이다..... 디버깅모드..) 화면에서 멈추고 싶은 곳에 (CTRL+SHIFT +F12) 브레이크포인트를 찍어보자..
폰을 바꿨더니 사진이 달라지네...
아무튼 저 버튼을 눌러 디버깅을 잡고
실행을 했다... 당연히 F8 눌러서 실행하면
브레이크 포인트 걸린데 딱 멈춘다
아래 화면과 같이 걸리고
인터널 테이블을 더블클릭해서 오른쪽에 다 띄웠다
아래와 같이 맨 위 인터널 테이블을 더블클릭해서
들어가보면 아래와같이 필드들이 보인다..
sflight 의 모든 필드가 존재한다..
그러면 우리가 begin of 로 만든 바구니는
모양이 어떨까?
F3으로 나와 gt_sflight를 더블클릭해보자.
엄마.. 우리가 선언한 필드에 데이터만 잘 들어가있다.
자... 그럼 여기서 끝???
아니다.. 우리 3번 인터널테이블의 값을 채우기 위해 select 할때 조금 다르게 쿼리를 넣었다.
SELECT * From sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight
저 INTO corresponding~~~~ table 은
무슨 의미일까???
여기까지만 알아보고 끝낼거다...
저 구문은 바구니가 DB랑 똑같이 생기지 않았을 때
쓰는 구문이다.
즉, 필드순서가 다르거다 필드 갯수가 다를 때....
INTO CORRES...... 구문을 쓰면
자동으로 같은 필드이름에 데이터가 숑숑 들어간다.
장점은 편하다...
단점은 1대1로 탁탁 선언해서 순서맞춰 필드명 넣은것 보다 느린데
뭐 거의 티가 안난다만 지양하는 곳도 있다.
요즘은 저렇게 위에 선언하기 보다
필드를 SELECT 할때 써넣은 후에
@DATA 해서 직접 만들며 넣으니......
INTO CORRESPONDING을 안써도 될것이다만..
참고해두길 바란다..^^
이상 오늘 수업 끝!!!!