2008 Aug 29 7:04 AM
Hi all,
While running a background job, it gets cancelled. I am getting DBIF_RSQL_SQL_ERROR error. It says SQL error 1555 occurred when accessing table "COVP ".
Database error text........: "ORA-01555: snapshot too old: rollback segment number 329 with name "_SYSSMU329$" too small#" Internal call code.........: "[RSQL/FTCH/COVP ]"
Please check the entries in the system log (Transaction SM21).
The source code extract is below:
000180
000190 * select the first r_maxlines reco
000200
000210 SELECT * FROM COVP INTO TABLE T_
000220 WHERE
000230 KOKRS IN R_KOKRS
000240 AND PERIO IN R_PERIO
000250 AND OBJNR IN R_OBJNR
000260 AND GJAHR IN R_GJAHR
000270 AND WRTTP IN R_WRTTP
000280 AND VERSN IN R_VERSN
000290 AND KSTAR IN R_KSTAR
000300 AND HRKFT IN R_HRKFT
000310 AND VRGNG IN R_VRGNG
000320 AND PAROB1 IN R_PAROB1
000330 AND PARGB IN R_PARGB
000340 AND BEKNZ IN R_BEKNZ
000350 AND MEINH IN R_MEINH
000360 AND BUKRS IN R_BUKRS
000370 AND GSBER IN R_GSBER
000380 AND FKBER IN R_FKBER
000390 AND SCOPE IN R_SCOPE
000400 AND LOGSYSO IN R_LOGSYSO
000410 AND PBUKRS IN R_PBUKRS
000420 AND PFKBER IN R_PFKBER
000430 AND PSCOPE IN R_PSCOPE
000440 AND LOGSYSP IN R_LOGSYSP
000450 AND CPUDT IN R_CPUDT
000460 * AND CPUTM IN R_CPUTM.
> ORDER BY KOKRS BELNR BUZEI.000480
Please help.
Thanks and regards,
Anishur
Hi all,
While running a background job, it gets cancelled. I am getting DBIF_RSQL_SQL_ERROR error. It says SQL error 1555 occurred when accessing table "COVP ".
Database error text........: "ORA-01555: snapshot too old: rollback segment number 329 with name "_SYSSMU329$" too small#" Internal call code.........: "[RSQL/FTCH/COVP ]"
Please check the entries in the system log (Transaction SM21).
The source code extract is below:
000180
000190 * select the first r_maxlines reco
000200
000210 SELECT * FROM COVP INTO TABLE T_
000220 WHERE
000230 KOKRS IN R_KOKRS
000240 AND PERIO IN R_PERIO
000250 AND OBJNR IN R_OBJNR
000260 AND GJAHR IN R_GJAHR
000270 AND WRTTP IN R_WRTTP
000280 AND VERSN IN R_VERSN
000290 AND KSTAR IN R_KSTAR
000300 AND HRKFT IN R_HRKFT
000310 AND VRGNG IN R_VRGNG
000320 AND PAROB1 IN R_PAROB1
000330 AND PARGB IN R_PARGB
000340 AND BEKNZ IN R_BEKNZ
000350 AND MEINH IN R_MEINH
000360 AND BUKRS IN R_BUKRS
000370 AND GSBER IN R_GSBER
000380 AND FKBER IN R_FKBER
000390 AND SCOPE IN R_SCOPE
000400 AND LOGSYSO IN R_LOGSYSO
000410 AND PBUKRS IN R_PBUKRS
000420 AND PFKBER IN R_PFKBER
000430 AND PSCOPE IN R_PSCOPE
000440 AND LOGSYSP IN R_LOGSYSP
000450 AND CPUDT IN R_CPUDT
000460 * AND CPUTM IN R_CPUTM.
> ORDER BY KOKRS BELNR BUZEI.000480
Please help.
Thanks and regards,
Anishur
2008 Aug 29 7:08 AM
Hi,
Check the declaration of the internal table that you are using in the SELECT Statemen,some field name should be misspelled.
Thanks
Sudharshan
2008 Aug 29 7:14 AM
Hi Sudharshan,
Thanks for your response.
This is a standard program and the internal table is also a standard database view.
Thanks and regards,
Anishur
2008 Aug 29 7:13 AM
Hi,
The reason for the exception(CX_SY_OPEN_SQL_DB) is:
The SQL statement generated from the SAP Open SQL statement violates a
restriction imposed by the underlying database system of the ABAP
system.
Possible error causes:
o The maximum size of an SQL statement was exceeded.
o The statement contains too many input variables.
o The input data requires more space than is available.
I would like to suggest my opinion,
This is DBIF_RSQL_SQL_ERROR - CX_SY_OPEN_SQL_DB
Dump error.
SDN - Reference - CX_SY_OPEN_SQL_DB Exception Occured
SDN - Reference - Short dump - CX_SY_OPEN_SQL_DB - when regenerating export datasource
Hope this works out well.
Thanks.
Ashok
2008 Oct 28 3:45 AM
Hi,
I very often get the same dump when I write Select Statements with too many Select Options or so many entries in the Select options.
One Example:
SELECT FIELD1 from TABLE 1 INTO ITAB1
WHERE FIELD1 IN S_FIELD1.
This Select looks pretty simple right.
However, if I load more than 20000 Entries into S_FIELD1 and execute the Select Statement, the same problem arises.
-
The underlying concept is :
Every Entry in each Select Option is treated as a Input Condition by the SQL.
So, if your select option has 20000 entries in it, the Select Statement has 20000 conditions to check.
So, the better options is,
Get all the Data irrespective of the Select Options.
SELECT FIELD1 FROM TABLE1 into ITAB1.
DELETE ITAB1 where FIELD1 NOT in S_FIELD1.
-
| User | Count |
|---|---|
| 5 | |
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |