‎2008 Mar 31 1:21 PM
Hi all,
I have an intenal table where I need to pass millions of records. I am getting short dump due to the memory full. The message is 'the maximum no of bytes passed is exceeded'.
To avoid this, I have used the Hash table, but still got the same error. If I execute the same program with less period, the program is getting exected, because the no.of records which we are passing is less. the problem comes during selecting many millions of records from the database table to internal table.
Please advice ASAP.
Thanks,
Venu
‎2008 Mar 31 1:40 PM
Hi,
You can increase the size of memory of the Internal Table in the Declaration part.
Eg : Begin of Itab occurs 100
field names.
End of Itab.
Regards
Rose
‎2008 Mar 31 1:44 PM
Hi Venu,
In this case you could use the PACKAGE SIZE addition in the SELECT query to process in limited amount of data, thus avoiding the memory overloads.
Eg:
SELECT *
FROM &table&;
INTO TABLE itab
PACKAGE SIZE <n>.
IF sy-subrc EQ 0.
*" Process the n records
ENDIF.
ENDSELECT.
regards,
Prabhu
Reward if helpful
‎2008 Mar 31 2:39 PM
I tried the cursor method using the package size, but still I got the same message.
Because, in this method we are selecting data from data base in packages, but ultimately appending to an internal table, so again, got the same message.
Thanks,
Venu
‎2008 Mar 31 1:45 PM
Hi
I am sure it will not solve the issue because occurs <n> means at a time it allocates memory for <n> records only.
Regards
Aditya
‎2008 Mar 31 1:55 PM
An internal table can hold data upto 2 GB .. it can be increased
to 4GB but it's not recommended ...
‎2008 Mar 31 2:04 PM
Hi,
You can make use Field Groups for large volume of data.
Reward if helpful.
RSS.