QnA를 뒤져서 찾은 구문을 적용했는데 에러가 나서요.
insert z10cot010 from table it_list.
이렇게 적었거든요.
그런데 에러가 나네요.
The type of the database table and work area (or internal table)
"IT_LIST" are not Unicode-convertible . . . . . . . . . .
커서는 it_list쪽에 놓여져 있는데 internal table이 머가 잘못된 건지 모르겠어요.
이 구문 없으면 에러 안나는데... 혹시 아시는 분 답변 좀 부탁드려요.
제가 멀 놓치고 있는지 잘 모르겠어요.
// 2008.01.23
그래서 이렇게 테스트를 했는데 첫번째 값만 table에 저장하고 다른 값들은 안들어 가거든요.
Loop를 돌기는 도는데 Insert를 안해요~
TABLES: SSCRFIELDS,
CE31000,
CE41000,
Z10COT010,
MAKT.
//
* Z10COT010 저장
DATA: IT_LIST LIKE Z10COT010 OCCURS 0 WITH HEADER LINE.
//
PARAMETERS : P_BUKRS LIKE CE41000-BUKRS OBLIGATORY MEMORY ID ID1,
P_WERKS LIKE CE41000-WERKS OBLIGATORY MEMORY ID ID2,
P_PERBL LIKE CE31000-PERBL OBLIGATORY.
//
FORM TEST.
LOOP AT IT_LIST.
* READ TABLE IT_LIST INDEX SY-TABIX.
* z10cot010-MANDT = IT_LIST-MANDT. "key
z10cot010-BUKRS = P_BUKRS. "key
z10cot010-PERBL = P_PERBL. "key
z10cot010-WERKS = P_WERKS. "key
z10cot010-VKBUR = IT_LIST-VKBUR.
z10cot010-MTART = IT_LIST-MTART.
z10cot010-ARTNR = IT_LIST-ARTNR.
z10cot010-MAKTX = IT_LIST-MAKTX.
z10cot010-ABSMG_ME = IT_LIST-ABSMG_ME.
z10cot010-REC_WAERS = IT_LIST-REC_WAERS.
* z10cot010-KNDNR = IT_LIST-KNDNR.
z10cot010-VV01 = IT_LIST-VV01.
z10cot010-VV02 = IT_LIST-VV02.
z10cot010-VV03 = IT_LIST-VV03.
//
z10cot010-VV31 = IT_LIST-VV31.
z10cot010-VV32 = IT_LIST-VV32.
z10cot010-VV99 = IT_LIST-VV99.
* z10cot010-ANDAT = IT_LIST-ANDAT.
* z10cot010-ANZET = IT_LIST-ANZET.
* z10cot010-ANNAM = IT_LIST-ANNAM.
INSERT Z10COT010.
ENDLOOP.
ENDFORM.
댓글 10
-
빠코
2008.01.22 21:47
-
크리스~
2008.01.22 22:08
인터널 테이블과 실제 DB 테이블의 타입이 완전 같아야 합니다.. 물론 자릿수도...
-
SAP폐인
2008.01.23 22:47
type이 다르다 보니 insert 구문이 적용되지 않는것 같은데요. 그리고 Z10COT010 테이블에는 BUKRS라는 필드가 포함되어 있지만 IT_LIST에는 포함안되어 있는거 아닌가요? -
왕초보
2008.01.23 22:59
혹시 z10cot010 테이블의 키값이 뭐뭐인가요??? 혹시 키값이 중복되는것은 아닌가요????
z10cot010 테이블은 TABLES: z10cot010. 이렇게 선언하신건가요???
-
김현준
2008.01.23 23:03
다른 타입이나 중복키가 있는 것 같군요.
글구 소스는 이렇게 하심이 어떠실지^^;;
흠.. 지금 필드가 IT_LIST 에 갖고 있는 필드가 Z10COT010 을 다 만족한다면 밑에 처럼 하시는게 어떠실지요~
LOOP AT IT_LIST.
* READ TABLE IT_LIST INDEX SY-TABIX.
MOVE-CORRESPONDING IT_LIST TO Z10COT010.
z10cot010-BUKRS = P_BUKRS.
z10cot010-PERBL = P_PERBL.
z10cot010-WERKS = P_WERKS.
INSERT Z10COT010.
ENDLOOP. -
행복한외계인
2008.01.24 01:37
김현준님이 적어준 거 그대로 사용해도 안되요... 그래서
DATA: IT_LIST LIKE Z10COT010 OCCURS 0 WITH HEADER LINE.
이렇게 적어도 it_list에는 값이 있는데 z10cot010으로는 첫줄만 저장되고 안되요 ㅡㅡ
-
왕초보
2008.01.24 02:46
Z10COT010 테이블의 키필드는 뭐뭐인가요??? -
행복한외계인
2008.01.24 04:05
key라고 표기해 둔 필드인데요~
-
옆집남자
2008.01.24 18:20
결론.; 첫줄은 저장 됐다...그럼 insert는 되는 겁니다.
결국 두번째 부터 저장 할려구 하는데 안된다..?
그럼...다음 저장할 테이다가 기존 저장되어 있는 table에 .
중복..key 값을 가지고 있어서 그렇습니다.
table에 key값을 어떤걸로 하셨는지 확인해보세요..수고하세요..홧팅.
-
행복한외계인
2008.01.24 20:03
빠코, 크리스~, SAP폐인, 왕초보, 김현준, 옆집남자님 답변들 고마웠습니다.
중복 KEY를 계속 얘기하시길래 Z10COT010 테이블의 key값 말고 중복 안되는 필드를 하나 더 추가하여 돌렸더니 저장이 되네요.
덕분에 또 한가지를 배웠습니다. ^^v
lt_list 테이블과 z10cot010 DB테이블이 타입이 달라서 그러는거 같네요.
필드하고 타입 확인해보세요.