‎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
‎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