Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Table conversion after domain change dumps

former_member517
Participant
0 Kudos

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

1 ACCEPTED SOLUTION

former_member517
Participant
0 Kudos

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

5 REPLIES 5

former_member517
Participant
0 Kudos

Sorry,

I forgot 2 important points.

It is a CRM 7.0 system

and we are on HANA 1.00.68.384084

Thanks.

0 Kudos

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

0 Kudos

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

0 Kudos

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

former_member517
Participant
0 Kudos

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