‎2009 Jan 12 12:50 PM
Hi abapers,
I have got an support work to do for a program, where in it was working fine in development, quality and production for the past 3 months. But now, it is showing an error in quality only but still working in development.( Not checked in production system, as user cant delete from the database table.)
Requesting you all to give your reviews as it been hrs i am trying to resolve it.
Heres the dump shown:
Database error text........: "ORA-12899: value too large for column
"SAPAR3"."YCONT"."MASSG" (actual: 10, maximum: 6)"
Internal call code.........: "[RSQL/INSR/YCONT ]"
Please check the entries in the system log (Transaction SM21).
You may able to find an interim solution to the problem
in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
-
"DBIF_RSQL_SQL_ERROR" CX_SY_OPEN_SQL_DBC
"YFI_CONTRACT_EMPLOYEE_SCREEN" or "YFI_CONTRACT_EMPLOYEE_PAI"
"USER_COMMAND_0200"
228 LOOP AT ITAB INTO WA_ITAB.
229 SELECT SINGLE KUNNR INTO WA_ITAB-KUNNR FRO
230 WA_ITAB-BUKRS = YBRA-BUKRS.
231 WA_ITAB-YHRCHD = SY-DATUM.
232 WA_ITAB-YUNAME = SY-UNAME.
233
234 IF WA_ITAB-ENDDA IS INITIAL.
235 WA_ITAB-ENDDA = '99991231'.
236 ENDIF.
237
238 CALL FUNCTION 'BAPI_CONTROLLINGAREA_FIND
239 EXPORTING
240 COMPANYCODEID = YBRA-BUKRS
241 IMPORTING
242 CONTROLLINGAREAID = WA_ITAB-KOK
243 WA_ITAB-YSTAT2 = '3'.
244 CONDENSE WA_ITAB-YEMP.
245 CONDENSE WA_ITAB-KUNNR.
246 CONDENSE WA_ITAB-KOSTL.
247
248 MODIFY ITAB FROM WA_ITAB .
249 CLEAR:WA_ITAB.
250 ENDLOOP.
>>>> INSERT YCONT FROM TABLE ITAB.
252 IF SY-SUBRC = 0.
253 COMMIT WORK.
254 MESSAGE S011.
255 ELSE.
256 MESSAGE S012.
257 ENDIF.
**************************************************
The data declaration for the above table ycont is with respect to the ddic itself.
‎2009 Jan 12 12:55 PM
Possible reasons for the ORA-03106 errors include:
1. Incompatibilities between the client application and the RDBMS server.
For example, version incompatibilities, or a client trying to use a feature not supported by the database kernel.
2. When using database links or gateways.
3. Network or SQL*Net problems.
4. Corruptions.
5. PL/SQL - language related.
One way to resolve this is to
Try synching the NLS_LANG variable on the client and server....
‎2009 Jan 12 12:59 PM
Database error text........: "ORA-12899: value too large
for column
"SAPAR3"."YCONT"."MASSG" (actual: 10, maximum: 6)"
Internal call code.........: "RSQL/INSR/YCONT "
Please check the entries in the system log
(Transaction SM21).
This should tell you all you need to know. The value in this field in your internal
table is too wide for the corresponding field in the database table.
You've said that you've based your itab on the database table, but I cannot
see that this can be the case unless the itab field can somehow hold a value that
is wider than it's defined width and I don't think that is possible.
Anyway, debug the program and try to find out which record holds the extra wide value.
Or, if you can't do it in debug, add a check to the program itself.
‎2009 Jan 12 1:04 PM
hi,
it telling that one of the field in the table has length less than the data length it is fiiling into.
please check it.
‎2009 Jan 12 1:17 PM
thanks for the quick reply friends,
Hai TT,
Could you please explain more on how i can sync NLS_LANG variable on the client and server....
hai Christine,
The data in the internal table matches according to the data types as debugged and updating the internal table.
regds
Sujeel
‎2009 Jan 12 5:26 PM
>
> hai Christine,
>
> The data in the internal table matches according to the data types as debugged and updating the internal table.
>
> regds
> Sujeel
I'm sorry but if you're getting an Oracle error saying that you're trying to insert too large a value into a database table, then that is exactly what you're doing. The fact that you're only getting the error in only one of your systems supports this theory that it is an error caused by data. If you're using conversion exits that might be a possible cause of the problem.
To identify the problem record, change the program so that it loops at your itab and inserts each record into the database table one by one.