2014 Jul 22 10:18 AM
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
2014 Jul 29 3:11 PM
So the reason was an error on my side. The domain I changed was linked to 2 fields, and not only to the one I wanted to change. The other field contained data which was too big for the reduced size.
Maybe one thing, how to get out of the mess :
- open the system
- undo the change to the domain
- adapt the uncritical tables via SE14
- rename back the qcxxx table to the original name
- Correct the table in the development system accoding the original intention.
Thanks for reading
Rabanus
2014 Jul 22 10:23 AM
Sorry,
I forgot 2 important points.
It is a CRM 7.0 system
and we are on HANA 1.00.68.384084
Thanks.
2014 Jul 28 7:09 AM
Hi Rabanus,
SQL error 314 indicates that you hit the upper limit - numeric overflow.
Since you stated that you had a look at the table and it looks fine (by the way did you check that for all clients as the insert statement is client specified?) can you please additionally check the workprocess or even the indexserver trace for more information about the error?
Cheers,
Jasmin
2014 Jul 28 2:20 PM
Hi Jasmin,
starting the back copy to the new table by SE14 goes directly to the dump, so I can check all values.
I see only 1,000 and 1000,000 as values which should fit in a 12 digit field. We have only 1 client.
Perhaps you can send me a hint, how to see the error traces on the HANA side. But I have limited access to HANA via Hanastudio. Maybe DBACOCKPIT allows me to see those logs. But I am quite unexperienced in that area.
Thanks,
Rabanus
2014 Jul 31 12:11 PM
Hi Rabanus,
the ST05 trace would have been an option and certainly the work process trace (e.g. accessible via TX ALXX in DIR_HOME = /usr/sap/<SID>/DVEBMGS00/work). There should even be a way in the DBACOCKPIT via the indexserver trace of HANA.
However, as I can see from you post below, you managed w/o my further help . So see my post as "additional info" for others who might stumble of the similar issues.
Cheers,
Jasmin
2014 Jul 29 3:11 PM
So the reason was an error on my side. The domain I changed was linked to 2 fields, and not only to the one I wanted to change. The other field contained data which was too big for the reduced size.
Maybe one thing, how to get out of the mess :
- open the system
- undo the change to the domain
- adapt the uncritical tables via SE14
- rename back the qcxxx table to the original name
- Correct the table in the development system accoding the original intention.
Thanks for reading
Rabanus