테이블 A, B가 있을때 각 필드의 내용이 다른 경우에 어떤문법을 써서 복사할수 있는지 궁금합니다.
만약 동일 하다면 MOVE-CORRESPOING 또는 직접 header와 body를 assign 시켜 쓸수 있는 것으로 알고 있습니다.
알려주세요^^
댓글 8
-
리브레
2008.04.01 00:57
잘못 썼네요. 내용이 아니라 필드의 type이나.. type은 같지만 길이가 다를때 복사방법이 알고 싶습니다. -
삐러
2008.04.01 01:10
select 해서 읽어 올때 alias를 써서 이름을 맞춰 주면 되지 않나요? 제가 잘못 이해한건지?
만약 A 테이블에는 MATNR
B 테이블에는 MATNT 로 되어있으면.
인터널 테이블 하나 만들어.
SELECT MATNT AS MATNR
FROM B
INTO CORRESPONDING FIELDS OF TABLE IT_A
해서 읽어 오면 될듯한데..
-
초보아밥퍼
2008.04.01 01:20
흠 조금 질문이 난해 하네요...
TYPE 이 다르고 길이가 다르다면... 덤프나던가 짤릴거 같은데...
주된 질문 내용을 잘 이해할수가 없어서 ^^;; 헤~
-
리브레
2008.04.01 01:21
제가 질문을 잘못했나 봐요. 제가 궁금했던것은 A라는 internal table안에 werks_in(10) 이란 필드가 선언되어 있고 B라는 internal table안에는 werks(4)란 필드가 선언되어 있다면 길이가 10인 werks_in의 필드의 data를 길이가 4인 werks란 필드에 강제적으로 넣어주는 방법이 없나 해서 질문드렸던 것인데요.^^ 삐러님 답변 감사합니다.
-
bd
2008.04.01 01:27
UNICODE SYSTEM 에선 필드 이름은 같아도 FILED의 TYPE이 틀리면.
A[] = B[]. <- 구문이 안되는 것으로 알고 있습니다. F1 에서 UNICODE 관련 내용을 보시면
FRAGMENT VIEW 때문이라고 하는데 자세한 내용은 한번 보시는게 ^^
MOVE-CORRESPONDING 구문으로는 서로 다른 TYPE 이던 길이가 틀리던 필드 이름이 동일하다면.
데이터를 밀어 넣을 수 있습니다.. (아니라면 테클 부탁 드림니다.)
DATA : BEGIN OF TEST_A OCCURS 0,
A(10) TYPE C,
B(10) TYPE C,
C(10) TYPE C,
D(5) TYPE C,
END OF TEST_A.
DATA : TEST_AS LIKE TEST_A.
DATA : BEGIN OF TEST_B OCCURS 0,
A TYPE N,
B(5) TYPE C,
C TYPE N,
D TYPE F,
END OF TEST_B.
DATA : TEST_BS LIKE TEST_B.
TEST_AS-A = '1234'.
TEST_AS-B = '2345'.
TEST_AS-C = '1212'.
TEST_AS-D = '9876'.
APPEND TEST_AS TO TEST_A.
WRITE :/ TEST_AS-A, / TEST_AS-B, / TEST_AS-C, / TEST_AS-D.
MOVE-CORRESPONDING TEST_AS TO TEST_BS.
ULINE.
WRITE :/ TEST_BS-A, / TEST_BS-B, / TEST_BS-C, / TEST_BS-D.
TEST_A[] = TEST_B[]. <-- UNICODE ERROR .
-
초보아밥퍼
2008.04.01 01:28
^^ 질문자체가 완전 변경되었네요 ;;
LOOP AT A 돌리셔서 아래와 같이 해주시면 넣을수는 있으나.
B-WERKS = A-WERKS_IN.
APPEND B.
CLEAR B.
ENDLOOP.
값은 역시나 짤려들어갈겁니다. 그냥 참고 질문의 요지가 이게 맞나 몰라 ㅋ
-
리브레
2008.04.01 01:49
bd님, 초보아밥퍼님 답변 감사합니다. 제가 질문을 너무 뜬금 없이 해서 이해 하시느라 힘드셨겠어요. 지금 업로드 프로그램을 짜고 있는데, 에러처리를 위해 입력값의 자릿수를 비교 해보려고 합니다. 그래서 이런 질문을 드려봤습니다. 다음에도 모르는 것이 있으면 질문할께요.
-ABAP초보-
-
SAP폐인
2008.04.01 18:16
길이가 틀리다면야.. 당연히 짤리겠죠..
50리터짜리 생수통에 들어있는 물을 2리터짜리 생수통으로 옮길려고 하면 남는 부분은 버려지게 되는 것과 같죠.