SELECT ryear
rbukrs
rprctr
racct
kslvt ksl01 ksl02 ksl03 ksl04
ksl05 ksl06 ksl07 ksl08 ksl09
ksl10 ksl11 ksl12
FROM glpct
INTO TABLE i_glpct2
WHERE rldnr = '8A'
AND rvers = '000'
AND ryear = p_gjahr
AND rrcty = '0'
AND rbukrs IN s_bukrs
AND rprctr IN r_prctr
AND racct IN s_hkont
AND (racct IN r_profloss OR racct IN r_balsheet).
In the above select query in the where condition, the range of r_prctr contains about 24,500 entries. When commented on, this particular condition is not going to dump.
In the dump, it is being suggested that the maximum size of the SQL statement was exceeded. The statement contains too many input variables and the input data requires more space than is available. I tried to fix this by putting in all entries for that particular range (i.e., r_prctr), but to no avail.
Requires Free Membership to View
When you register, you will start receiving targeted emails from my award-winning team of editorial writers. Our goal is to keep you informed on the hottest topics and biggest challenges faced by SAP professionals today.
Hannah Smalltree, Editorial DirectorIf there's no exploitable pattern in the contents of r_prctr, create another range object of the same structure (i.e., r_tmp). In a loop pass, on each iteration, the next few thousand records of r_prctr to r_tmp. (Look the ABAP keyword: APPEND LINES OF). Change your select to use r_tmp instead of r_prctr, and APPENDING TABLE instead of INTO TABLE.
This was first published in June 2009