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

SQL Query

Former Member
0 Likes
506

Hi All,

What is the purpose of use <b>PACKAGE SIZE</b> in SQL statement

I look forward to your reply

Thanks & Regards

Hruday

4 REPLIES 4
Read only

Former Member
0 Likes
472

Hi Hruday,

Package size will determine the number of records to be selected from database table at one time, when there r more number of records , this statement is used

the below statement will select 20 records at a time

DATA: itab TYPE STANDARD TABLE OF SCARR WITH NON-UNIQUE

DEFAULT KEY INITIAL SIZE 10.

FIELD-SYMBOLS: <FS> TYPE scarr.

SELECT * INTO TABLE itab PACKAGE SIZE 20 FROM scarr.

LOOP AT itab ASSIGNING <FS>.

WRITE: / <FS>-carrid, <FS>-carrname.

ENDLOOP.

ENDSELECT.

Message was edited by:

chandrasekhar jagarlamudi

Read only

Former Member
0 Likes
472

Welcome to SDN.

Package size can be used if you for example only want to finish processing a limited amount of data at a time due to lack of memory.

The example below read 50 records at a time from VBAK into an internal table, and selects the corresponding entries from vbap into an internal table. Then the two internal tables can be processed, and the next 50 records from VBAk can be read. Remember to reinitialize tha tables before the next read.

REPORT z_test.

TYPES:

BEGIN OF t_vbak,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

END OF t_vbak,

BEGIN OF t_vbap,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

meins LIKE vbap-meins,

END OF t_vbap,

BEGIN OF t_report,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

meins LIKE vbap-meins,

END OF t_report.

DATA:

li_vbak TYPE t_vbak OCCURS 0,

l_vbak TYPE t_vbak,

li_vbap TYPE t_vbap OCCURS 0,

l_vbap TYPE t_vbap,

li_report TYPE t_report OCCURS 0,

l_report TYPE t_report.

START-OF-SELECTION.

SELECT vbeln erdat

FROM vbak

INTO TABLE li_vbak PACKAGE SIZE 50.

SELECT posnr matnr meins

FROM vbap

INTO TABLE li_vbap

FOR ALL ENTRIES IN li_vbak

WHERE vbeln = li_vbak-vbeln.

IF sy-subrc = 0.

  • Now you have the two internal tables li_vbak and li_vbap filled

  • with data.

  • Do something with the data - remember to reinitialize internal

  • tables

ENDIF.

ENDSELECT.

*-- End of Program

Best Regards,

Vibha

*Please mark all the helpful answers

Read only

Former Member
0 Likes
472

Hi Hruday,

Check te sap document excerpt:

"Addition

... PACKAGE SIZE n

Effect

Works like ... INTO wa, except that the selected data is not placed in the internal table itab line by line, but in packets of n lines. The old contents of itab are overwritten.

n <= 0 causes a runtime error.

Internally, n is placed in a type I field. Here, the usual conversion rules apply (see MOVE).

After leaving the processing loop, the contents of the internal table itab are undefined.

If the result of the selection is a table, the data is retrieved in a processing loop introduced by SELECT and concluded by ENDSELECT. The processing passes through the loop once for each line read.

Example

Output a list of all airlines (with short description and name):

DATA: itab TYPE STANDARD TABLE OF SCARR WITH NON-UNIQUE

DEFAULT KEY INITIAL SIZE 10.

FIELD-SYMBOLS: <FS> TYPE scarr.

SELECT * INTO TABLE itab PACKAGE SIZE 20 FROM scarr.

LOOP AT itab ASSIGNING <FS>.

WRITE: / <FS>-carrid, <FS>-carrname.

ENDLOOP.

ENDSELECT.

"

Regards,

Ravi

Read only

Former Member
0 Likes
472

Hi Hruday,

Welcome to SDN.

Package size is used in Select query to process in limited amount of data.

select * from table into table itab package size n.

regards,

Kannaiah Kavuri