<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ABAP: Native SQL in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205522#M1626804</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a requirement that is to fetch data from an oracle database.&lt;/P&gt;&lt;P&gt;My problem is I have a lot of tables, so I'm developping the code that suits all of them.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;- I need a select statement like bellow (surrounded by EXEC... ENDEXEC):&lt;/P&gt;&lt;P&gt;   SELECT column1, column2&lt;/P&gt;&lt;P&gt;      FROM synonym&lt;/P&gt;&lt;P&gt;      where column2 = :var&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is in variables column1 and column2. This is supposed to be dynamic,&lt;/P&gt;&lt;P&gt;but I cant do what i do with var (:var).&lt;/P&gt;&lt;P&gt;So, what's the syntax i should use here, if this is possible?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Fábio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Fabio Ramalho on Oct 7, 2011 1:30 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Oct 2011 11:06:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2011-10-07T11:06:03Z</dc:date>
    <item>
      <title>ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205522#M1626804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a requirement that is to fetch data from an oracle database.&lt;/P&gt;&lt;P&gt;My problem is I have a lot of tables, so I'm developping the code that suits all of them.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;- I need a select statement like bellow (surrounded by EXEC... ENDEXEC):&lt;/P&gt;&lt;P&gt;   SELECT column1, column2&lt;/P&gt;&lt;P&gt;      FROM synonym&lt;/P&gt;&lt;P&gt;      where column2 = :var&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is in variables column1 and column2. This is supposed to be dynamic,&lt;/P&gt;&lt;P&gt;but I cant do what i do with var (:var).&lt;/P&gt;&lt;P&gt;So, what's the syntax i should use here, if this is possible?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Fábio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Fabio Ramalho on Oct 7, 2011 1:30 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 11:06:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205522#M1626804</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-10-07T11:06:03Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205523#M1626805</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Follow below syntax for dynamic where clause...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: where_tab(30) occurs 1 with header line, &lt;/P&gt;&lt;P&gt;where_clause(30) type c. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the where clause. Will look like this when finished&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WHERE ZAFSTMD02 = 'X' AND rbusa = '5145'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;With a constant, result: ZAFSTMD01 = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;concatenate 'ZAFSTMD' zcostcheck-zmaaned ' = ''X''' into where_clause. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append to internal table where_tab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;append where_clause to where_tab. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;With a variable, result: AND rbusa = '5145'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;concatenate 'AND rbusa = ' '''' i_tab-zgsber ''''&lt;/P&gt;&lt;P&gt;append where_clause to where_tab. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;select * from zcostfreq &lt;/P&gt;&lt;P&gt;where (where_tab). &lt;/P&gt;&lt;P&gt;endselect. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that you can combine static and dynamic where clauses:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from zcostfreq &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where bukrs = '2021' AND&lt;/P&gt;&lt;P&gt;(where_tab). &lt;/P&gt;&lt;P&gt;endselect. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ram.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 11:43:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205523#M1626805</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-10-07T11:43:11Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205524#M1626806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ram,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tested it, it's not working.&lt;/P&gt;&lt;P&gt;I believe that code is valid for Open SQL, but what I'm talking about here is Native SQL (i.e. EXEC SQL statement).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I already tried to use &lt;EM&gt;execute immediate&lt;/EM&gt; but it's not recognized in SAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any other suggestions?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Fábio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 13:08:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205524#M1626806</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-10-07T13:08:18Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205525#M1626807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any reason why you are going for OPEN SQL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In ABAP you can define data and internal table dynamically.&lt;/P&gt;&lt;P&gt;Fields, tablename and where clause in SELECT statement can be dynamic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below code should solve your problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT zpwtest6 .

START-OF-SELECTION .

* Select MATNR ERNAM from table MARA where ERNAM = 'KESARIP'
  PERFORM select_dynamic USING 'MATNR' 'ERNAM' 'MARA' 'KESARIP' .

* Select MATNR WERKS from table MARC where WERKS = '1020'
  PERFORM select_dynamic USING 'MATNR' 'WERKS' 'MARC' '1020' .

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SELECT_DYNAMIC
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;FIELD1     text
*      --&amp;gt;FIELD2     text
*      --&amp;gt;TABLENAME  text
*      --&amp;gt;CONDITION  text
*----------------------------------------------------------------------*
FORM select_dynamic USING field1    TYPE char20
                          field2    TYPE char20
                          tablename TYPE char20
                          condition TYPE char20 .

  DATA : lv_columns TYPE char40  ,
         lv_where TYPE char40    .

  DATA : ref_tab TYPE REF TO data ,
         ref_stc TYPE REF TO data .

  FIELD-SYMBOLS : &amp;lt;fs_itab&amp;gt; TYPE ANY TABLE ,
                  &amp;lt;fs_stc&amp;gt;  TYPE ANY       ,
                  &amp;lt;fs_fld&amp;gt;  TYPE ANY       .

* Create table and structure of type specified in TABLENAME variable
  CREATE DATA ref_tab TYPE TABLE OF (tablename) .
  CREATE DATA ref_stc TYPE (tablename) .

  ASSIGN ref_tab-&amp;gt;* TO &amp;lt;fs_itab&amp;gt; .
  ASSIGN ref_stc-&amp;gt;* TO &amp;lt;fs_stc&amp;gt; .

* Build field names to select from table
  CONCATENATE field1 field2 INTO lv_columns SEPARATED BY space .
* Build where clause
  CONCATENATE field2 ' = '  '''' condition '''' INTO lv_where  .

* Select with dynamic fields, table name, and where clause
  SELECT  (lv_columns)
    INTO CORRESPONDING FIELDS OF TABLE &amp;lt;fs_itab&amp;gt;
    FROM (tablename)
    WHERE (lv_where) .

* Display data
  LOOP AT &amp;lt;fs_itab&amp;gt; ASSIGNING &amp;lt;fs_stc&amp;gt; .
    ASSIGN COMPONENT field1 OF STRUCTURE &amp;lt;fs_stc&amp;gt; TO &amp;lt;fs_fld&amp;gt; .
    IF sy-subrc = 0 .
      WRITE : &amp;lt;fs_fld&amp;gt; .
    ENDIF.

    ASSIGN COMPONENT field2 OF STRUCTURE &amp;lt;fs_stc&amp;gt; TO &amp;lt;fs_fld&amp;gt; .
    IF sy-subrc = 0 .
      WRITE : &amp;lt;fs_fld&amp;gt; .
    ENDIF.

    NEW-LINE.

  ENDLOOP.

ENDFORM.                    "SELECT_DYNAMIC&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 15:24:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205525#M1626807</guid>
      <dc:creator>Pawan_Kesari</dc:creator>
      <dc:date>2011-10-07T15:24:02Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205526#M1626808</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not going for Open SQL, I believe that you meant to say Native SQL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm familiar with the code that you posted,&lt;/P&gt;&lt;P&gt;but i'm using Native SQL because it's a connection to an oracle database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Fábio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 15:44:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205526#M1626808</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-10-07T15:44:15Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205527#M1626809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes (sorry), I meant Native SQL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suppose this is an external database.&lt;/P&gt;&lt;P&gt;I can see from SELECT help that open sql can be used with external database connection using &lt;/P&gt;&lt;P&gt;addiition CONNECTION {con|(con_syntax)} in SELECT statement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Well, I have never used it so .. I think I'll leave this to experts to answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pawan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 15:55:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205527#M1626809</guid>
      <dc:creator>Pawan_Kesari</dc:creator>
      <dc:date>2011-10-07T15:55:14Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205528#M1626810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Note we use DB2 dbms on AIx....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but here's how we do it....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;EXEC SQL.
    CONNECT TO 'PAD'  "our alias for the other DB2 system
  ENDEXEC.

. . . . 

      EXEC SQL.
        SELECT DESCR.TEXT_DESC                                 "DESCR refers to db2 defined to SAP as DESCR
          FROM DESCRIPTION DESCR
          INTO :EX_TEXT_DESC                                          "target variable 
           WHERE DESCR.STATUS_CD       = 'ACT'                "literal 
             AND DESCR.USE_CD                 = :IM_USE_CD    "input parameter to this Function module
             AND DESCR.POLICY_ID             = :IM_POLICY_ID
             AND DESCR.POLICY_EFF_DT   = :LV_EFF_DT    "local variable created in code (char 8 mm-dd-ccyy)
             AND DESCR.USE_LOC_NBR     = :LV_ONE
             AND DESCR.DESC_SEQ_NBR   = :LV_ZERO
      ENDEXEC.
. . .
EXEC SQL.
      DISCONNECT 'PAD'
    ENDEXEC.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: DaveL on Oct 7, 2011 5:59 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Oct 2011 15:59:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205528#M1626810</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-10-07T15:59:05Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP: Native SQL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205529#M1626811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Using CONNECTION keyword on Open SQL is said "internal to SAP", so it shouldn't be used.&lt;/P&gt;&lt;P&gt;As you want to use full dynamic Native SQL (the column names), you'll have to use ADBC classes (it allows secondary database connections too) -&amp;gt; [ABAP documentation: ADBC - ABAP Database Connectivity|http://help.sap.com/abapdocu_702/en/index.htm?url=abenadbc.htm]&lt;/P&gt;&lt;P&gt;Sandra&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Oct 2011 06:01:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-native-sql/m-p/8205529#M1626811</guid>
      <dc:creator>Sandra_Rossi</dc:creator>
      <dc:date>2011-10-08T06:01:15Z</dc:date>
    </item>
  </channel>
</rss>

