2014 Nov 05 7:29 AM
Hi all,
I am trying to execute a SELECT statement in order to fetch data in Native and open SQL.
Example In Open Sql
DATA : it_T001 LIKE TABLE OF T001 WITH HEADER LINE.
DATA : wa_T001 LIKE T001.
PARAMETERS : TABNAME(30) TYPE C.
SELECT * FROM (TABNAME) INTO TABLE it_T001.
Similar stuff is not working for Native Sql :
Does anybody know if is possible to do that?
If not, is there any other solution?
2014 Nov 05 8:50 AM
Hi,
you can generate your own program with native SQL and paste table name in it. Try to code like this:
REPORT ztest8.
PARAMETERS : tabname(30) TYPE c DEFAULT 'spfli'.
DATA:
g_prog TYPE string,
g_line TYPE string,
g_tab TYPE STANDARD TABLE OF string,
g_mess TYPE string,
g_sid TYPE string.
APPEND 'PROGRAM subpool.' TO g_tab.
APPEND `DATA spfli_tab TYPE TABLE OF spfli.` TO g_tab.
APPEND `LOAD-OF-PROGRAM.` TO g_tab.
APPEND `DATA: BEGIN OF wa,` TO g_tab.
APPEND ` connid TYPE spfli-connid,` TO g_tab.
APPEND ` cityfrom TYPE spfli-cityfrom,` TO g_tab.
APPEND ` cityto TYPE spfli-cityto,` TO g_tab.
APPEND ` END OF wa.` TO g_tab.
APPEND `DATA c1 TYPE spfli-carrid VALUE 'LH'.` TO g_tab.
APPEND `EXEC SQL PERFORMING loop_output.` TO g_tab.
APPEND ` SELECT connid, cityfrom, cityto` TO g_tab.
APPEND ` INTO :wa` TO g_tab.
CONCATENATE ` FROM ` tabname INTO g_line.
APPEND g_line TO g_tab.
APPEND ` WHERE carrid = :c1` TO g_tab.
APPEND `ENDEXEC.` TO g_tab.
APPEND `FORM loop_output.` TO g_tab.
APPEND ` WRITE: / wa-connid, wa-cityfrom, wa-cityto.` TO g_tab.
APPEND `ENDFORM.` TO g_tab.
GENERATE SUBROUTINE POOL g_tab NAME g_prog
MESSAGE g_mess
SHORTDUMP-ID g_sid.
IF sy-subrc = 0.
PERFORM ('LOOP_OUTPUT') IN PROGRAM (g_prog) IF FOU
ELSEIF sy-subrc = 4.
MESSAGE g_mess TYPE 'I'.
ELSEIF sy-subrc = 8.
MESSAGE g_sid TYPE 'I'.
ENDIF.
ABAP source code in this document was coloured using the ABAP code lighter for SCN.
Best regards,
George Shlyahov
Hi,
you can generate your own program with native SQL and paste table name in it. Try to code like this:
REPORT ztest8.
PARAMETERS : tabname(30) TYPE c DEFAULT 'spfli'.
DATA:
g_prog TYPE string,
g_line TYPE string,
g_tab TYPE STANDARD TABLE OF string,
g_mess TYPE string,
g_sid TYPE string.
APPEND 'PROGRAM subpool.' TO g_tab.
APPEND `DATA spfli_tab TYPE TABLE OF spfli.` TO g_tab.
APPEND `LOAD-OF-PROGRAM.` TO g_tab.
APPEND `DATA: BEGIN OF wa,` TO g_tab.
APPEND ` connid TYPE spfli-connid,` TO g_tab.
APPEND ` cityfrom TYPE spfli-cityfrom,` TO g_tab.
APPEND ` cityto TYPE spfli-cityto,` TO g_tab.
APPEND ` END OF wa.` TO g_tab.
APPEND `DATA c1 TYPE spfli-carrid VALUE 'LH'.` TO g_tab.
APPEND `EXEC SQL PERFORMING loop_output.` TO g_tab.
APPEND ` SELECT connid, cityfrom, cityto` TO g_tab.
APPEND ` INTO :wa` TO g_tab.
CONCATENATE ` FROM ` tabname INTO g_line.
APPEND g_line TO g_tab.
APPEND ` WHERE carrid = :c1` TO g_tab.
APPEND `ENDEXEC.` TO g_tab.
APPEND `FORM loop_output.` TO g_tab.
APPEND ` WRITE: / wa-connid, wa-cityfrom, wa-cityto.` TO g_tab.
APPEND `ENDFORM.` TO g_tab.
GENERATE SUBROUTINE POOL g_tab NAME g_prog
MESSAGE g_mess
SHORTDUMP-ID g_sid.
IF sy-subrc = 0.
PERFORM ('LOOP_OUTPUT') IN PROGRAM (g_prog) IF FOU
ELSEIF sy-subrc = 4.
MESSAGE g_mess TYPE 'I'.
ELSEIF sy-subrc = 8.
MESSAGE g_sid TYPE 'I'.
ENDIF.
ABAP source code in this document was coloured using the ABAP code lighter for SCN.
Best regards,
George Shlyahov
2014 Nov 05 8:50 AM
Hi,
you can generate your own program with native SQL and paste table name in it. Try to code like this:
REPORT ztest8.
PARAMETERS : tabname(30) TYPE c DEFAULT 'spfli'.
DATA:
g_prog TYPE string,
g_line TYPE string,
g_tab TYPE STANDARD TABLE OF string,
g_mess TYPE string,
g_sid TYPE string.
APPEND 'PROGRAM subpool.' TO g_tab.
APPEND `DATA spfli_tab TYPE TABLE OF spfli.` TO g_tab.
APPEND `LOAD-OF-PROGRAM.` TO g_tab.
APPEND `DATA: BEGIN OF wa,` TO g_tab.
APPEND ` connid TYPE spfli-connid,` TO g_tab.
APPEND ` cityfrom TYPE spfli-cityfrom,` TO g_tab.
APPEND ` cityto TYPE spfli-cityto,` TO g_tab.
APPEND ` END OF wa.` TO g_tab.
APPEND `DATA c1 TYPE spfli-carrid VALUE 'LH'.` TO g_tab.
APPEND `EXEC SQL PERFORMING loop_output.` TO g_tab.
APPEND ` SELECT connid, cityfrom, cityto` TO g_tab.
APPEND ` INTO :wa` TO g_tab.
CONCATENATE ` FROM ` tabname INTO g_line.
APPEND g_line TO g_tab.
APPEND ` WHERE carrid = :c1` TO g_tab.
APPEND `ENDEXEC.` TO g_tab.
APPEND `FORM loop_output.` TO g_tab.
APPEND ` WRITE: / wa-connid, wa-cityfrom, wa-cityto.` TO g_tab.
APPEND `ENDFORM.` TO g_tab.
GENERATE SUBROUTINE POOL g_tab NAME g_prog
MESSAGE g_mess
SHORTDUMP-ID g_sid.
IF sy-subrc = 0.
PERFORM ('LOOP_OUTPUT') IN PROGRAM (g_prog) IF FOU
ELSEIF sy-subrc = 4.
MESSAGE g_mess TYPE 'I'.
ELSEIF sy-subrc = 8.
MESSAGE g_sid TYPE 'I'.
ENDIF.
ABAP source code in this document was coloured using the ABAP code lighter for SCN.
Best regards,
George Shlyahov
2014 Nov 05 9:43 AM
2014 Nov 05 10:01 AM
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |