SAP/ABAP_SQL

ABAP calling native sql

Denise 2015. 2. 17. 14:07
TYPES : gty_t_query TYPE TABLE OF string.

FORM execute_native  USING    pt_query TYPE gty_t_query
                     CHANGING pt_data  TYPE STANDARD TABLE.

  DATA: lo_conn    TYPE REF TO cl_sql_connection.
  DATA: lo_stmt    TYPE REF TO cl_sql_statement.
  DATA: lo_result  TYPE REF TO cl_sql_result_set.
  DATA: lo_except  TYPE REF TO cx_sql_exception.
  DATA: lv_rc      TYPE i.
  DATA: lv_rows    TYPE i.
  DATA: lv_text    TYPE string.

  DATA: lv_query   TYPE string.
  DATA: lt_ref     TYPE REF TO data.

  DATA: ls_query   LIKE LINE OF pt_query.

  TRY.
      REFRESH pt_data.
      CREATE OBJECT lo_conn.

      lo_stmt = lo_conn->create_statement( ).

      LOOP AT pt_query INTO ls_query.
        CONCATENATE lv_query ls_query
               INTO lv_query
              SEPARATED BY space.
        CONDENSE lv_query.
      ENDLOOP.

      lo_result = lo_stmt->execute_query( lv_query ).

      GET REFERENCE OF pt_data INTO lt_ref.
      lo_result->set_param_table( lt_ref ).
      lv_rows = lo_result->next_package( ).
      lo_result->close( ).
      lo_conn->close( ).
    CATCH cx_sql_exception INTO lo_except.
      IF lo_except->db_error = 'X'.
        lv_rc   = lo_except->sql_code.
        lv_text = lo_except->sql_message.
      ELSE.
        lv_rc   = lo_except->internal_error.
        lv_text = 'Unknown internal error'.
      ENDIF.
  ENDTRY.

ENDFORM.

'SAP > ABAP_SQL' 카테고리의 다른 글

HANA BOM Multi level explosion with HIERARCHY  (0) 2024.08.07
Data Element / Domain info SQL  (0) 2015.05.20
특성 값 리스트 조회 쿼리  (0) 2013.06.20
SAP table info from Oracle  (0) 2013.01.17