Application Development and Automation 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: 
Read only

Dump : Runtime Errors DBIF_RSQL_INVALID_RSQL

Former Member
0 Likes
1,471

Hi Experts,

I got a dump at the select statement in the production during the excution.The Details of the program are :

DATA : BEGIN OF it_ekko OCCURS 0.

INCLUDE STRUCTURE ekko.

DATA : END OF it_ekko.

.....

.....

.....

START-OF-SELECTION.

SELECT * FROM ekko

INTO TABLE it_ekko

WHERE ebeln IN p_ebeln

AND aedat IN p_aedat

AND bsart IN p_bsart

AND lifnr IN p_lifnr.

In ST22, the description of dump details is as follows.

<b><u>What happened?</u></b>

Error in ABAP application program.

The current ABAP program "ZMMRP126_1" had to be terminated because one of the statements could not be executed.

This is probably due to an error in the ABAP program.

<b><u>Error analysis</u></b>

An exception occurred. This exception will be dealt with in more detail

below. The exception, assigned to the class 'CX_SY_OPEN_SQL_DB', was not

caught, which

led to a runtime error. The reason for this exception is:

The SQL statement generated from the SAP Open SQL Statement violates a

restriction imposed by the database system used in R/3.

Possible errors:

o The maximum size of an SQL statement has been exceeded.

o The statement contains too many input variables.

o The space needed for the input data exceeds the available memory.

o ...

You can usually find details in the system log (SM21) and in the

developer trace of the work process (ST11).

If an error occurs the developer trace often informs you about the

current restrictions.

<b><u>Source Code Extract</u></b>

001830

-


> SELECT * FROM ekko "read through purchase orders

001850 INTO TABLE it_ekko

001860 WHERE ebeln IN p_ebeln "for order number

001870 AND aedat IN p_aedat "created date

001880 AND bsart IN p_bsart "document type

001890 AND lifnr IN p_lifnr.

001900

001910 LOOP AT it_ekko INTO ekko.

001920 PERFORM process_items. "read, check and save line items

001930 ENDLOOP.

<b><u>Contents of system fields</u></b>

SY field contents..................... SY field contents.....................

SY-SUBRC 0 SY-INDEX 0

SY-TABIX 1 <b>SY-DBCNT 69682</b>

SY-FDPOS 0 SY-LSIND 0

SY-PAGNO 0 SY-LINNO 1

SY-COLNO 1 SY-PFKEY

SY-UCOMM SY-TITLE Purchase Order Receipt Status

SY-MSGTY I SY-MSGID SF

SY-MSGNO 616 SY-MSGV1 5000098347

SY-MSGV2 SY-MSGV3

SY-MSGV4

Kindly help me to solve out this issue.

Thanks & Regards,

Krishna Kishore .K

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
792

hi,

I think you declared p_ebeln as parameter and used in where condition with IN operator.

Could you change with EQ operator.

Or If p_ebeln is select-oprions means check you are giving high range in the selection screen for the input values.

try to check by giving 1 purchase order i.e p_ebeln = 'XXXX' only.

dont give range.

If output is big range means program goes to dump.

are you trying to modify EKKO table in the program?

Please reward if its useful.

Thanks

Sivaparvathi

Or

6 REPLIES 6
Read only

Former Member
0 Likes
792

Are you doing multiple selects against EKKO? The reason why I am asking is because the select statement in the dump has comments next to it ("read through purchase orders") and the EKKO startment right after start of selection does not. So you might want to check that. If you need two table reads, consider creating a separate internal table.

John

Read only

Former Member
0 Likes
792

Hi

Try to check how many hits were entered in the select-options.

Max

Read only

matt
Active Contributor
0 Likes
792

>You can usually find details in the system log (SM21)

So, what does SM21 indicate happened at the time of this dump?

matt

Read only

Former Member
0 Likes
792

Hi,

You have writen the code as in p_field

if this is a parameter there will be single value

modify your select to

SELECT * FROM ekko

INTO TABLE it_ekko

WHERE ebeln <b>EQ</b> p_ebeln

AND aedat EQ p_aedat

AND bsart EQ p_bsart

AND lifnr <b>EQ</b> p_lifnr.

basically parameter contains a single value

Regards,

siva chalasani.

<b>Reward points if found usefull</b>

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
792

Max may be on the right track here, in SELECT-OPTIONS if you have more than say 1000 single entries entered, you will get a dump. Not exactly sure what the limit is, but it is between 800 and 1200.

Regards,

Rich Heilman

Read only

Former Member
0 Likes
793

hi,

I think you declared p_ebeln as parameter and used in where condition with IN operator.

Could you change with EQ operator.

Or If p_ebeln is select-oprions means check you are giving high range in the selection screen for the input values.

try to check by giving 1 purchase order i.e p_ebeln = 'XXXX' only.

dont give range.

If output is big range means program goes to dump.

are you trying to modify EKKO table in the program?

Please reward if its useful.

Thanks

Sivaparvathi

Or