Dear all,
I have changed a numeric field in a table from 0 decimals to 3 decimals. In the development the process was straight forward. In the quality system the transport import dumps when doing the table conversion in step 5, where the renamed table is copied back to the new defined table.
Conversion of data to new table, deletion of renamed table
The field length was and is 12. So my first idea was there were numbers which were too big. But debugging the coding showed that only the values 0, 1 and 1000 were in the table, which should fit to my eyes.
71 * Perform type and structural conversions:
72 if load-mapform = 'CFNNN_MAP' and load-maprepid = 'RKCUMCFN'.
73 PERFORM (LOAD-MAPFORM) IN PROGRAM (LOAD-MAPREPID)
74 TABLES QCMYCOMP_SHARE_TAB QCM8YCOMP_SHARE_TAB
75 USING 'QCMYCOMP_SHARE' 'QCM8YCOMP_SHARE' C_ADDED PRID RC.
76 else.
77 PERFORM (LOAD-MAPFORM) IN PROGRAM (LOAD-MAPREPID)
78 TABLES CLIENTLIST
79 USING QCMYCOMP_SHARE_TAB QCM8YCOMP_SHARE_TAB
80 'QCMYCOMP_SHARE' 'QCM8YCOMP_SHARE' C_ADDED PRID RC.
81 endif.
82 IF RC <> 0. ROLLBACK WORK. ENDIF.
83 OP_FAILURE>: RC 'DB_DATA_MOVE' UEXIT.
84 DESCRIBE TABLE QCM8YCOMP_SHARE_TAB LINES FILL.
85 IF FILL > 0. " perform array insert
86 IF WITH_LOCK <> SPACE AND LOCKED = SPACE.
87 CALL FUNCTION 'DB_TABLE_SET_LOCK'
88 EXPORTING
89 TABNAME = 'QCM8YCOMP_SHARE'
90 MAX_SEVERITY = 'W'
91 PRID = PRID
92 EXCEPTIONS
93 OTHERS = 1.
94 LOCKED = 'X'.
95 ENDIF.
96 INSERT_CNT = INSERT_CNT + 1.
97 INSERT QCM8YCOMP_SHARE CLIENT SPECIFIED
>> FROM TABLE QCM8YCOMP_SHARE_TAB ACCEPTING DUPLICATE KEYS.
99 * Number of duplicates:
00 DUP_CNT = DUP_CNT + ( FILL - SY-DBCNT ).
01 * Number of moved tupel:
02 ROW_CNT = ROW_CNT + SY-DBCNT.
03 * Compute size of the moved data package
04 CHUNK_SIZE = CHUNK_SIZE + ( SY-DBCNT * TAB_WIDTH ).
05 ENDIF.
The exact error message is
SQL error 314 occurred while accessing table "QCM8YCOMP_SHARE".
For me there are 2 points which are unclear:
- What is the rrot cause of the problem ?
- How can I get out this situation ?
Maqny thanks for your help
Rabanus Diehl