Quantcast
Channel: SCN : Document List - SAP HANA and In-Memory Computing
Viewing all articles
Browse latest Browse all 1183

Reading HANA table content using ABAP

$
0
0

*&---------------------------------------------------------------------*

*& Report  ZTEST_HANA_QUERY1

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

 

REPORT ZDEMO_HANA_QUERY.

 

type-POOLs:ADBC.

 

types : BEGIN OF ty_purchase_order,

            PURCHASEORDERID type char30,

            CreatedBy type char30,

            GrossAmount type char30,

            NetAmount type char30,

            Currency type char30,

       END OF ty_purchase_order.

data : lt_data type TABLE OF ty_purchase_order,

        ls_data type ty_purchase_order.

 

data lv_sql type string.

data lv_from type string.

data lv_where type string.

data lv_where2 type string.

data lv_where3 type string.

data : v_rows type i.

data : lt_meta type ADBC_RS_METADATA_DESCR_TAB,

        lt_column type ADBC_COLUMN_TAB,

        ls_meta like LINE OF lt_meta,

        ls_column like LINE OF lt_column.

 

*Define variables for the connection

data: lr_dbconn         type ref to cl_sql_connection,

lv_con            type dbcon_name value '<your hana db host added in dbcon view in sm30>',

lr_sql_env        type ref to cl_sql_statement,

lr_sql_result     type ref to cl_sql_result_set,

lr_sql_exc        type ref to cx_sql_exception,             "#EC NEEDED

lr_par_exc        type ref to cx_parameter_invalid,         "#EC NEEDED

dref              TYPE REF TO data,

tab_ref           type REF TO data,

gt_components     type cl_abap_structdescr=>component_table,

gs_components     like LINE OF gt_components.

FIELD-SYMBOLS : <table> TYPE ANY TABLE,

                 <str> type any,

                 <FIELDV> TYPE ANY.

 

*Get connection

lr_dbconn = cl_sql_connection=>get_connection( con_name = lv_con ).

CREATE OBJECT lr_sql_env

   EXPORTING

     con_ref = lr_dbconn.

*Define sql script

lv_sql = 'Select TOP 5 *'.

lv_from = 'FROM "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::purchaseOrder"'.

 

concatenate lv_sql lv_from into lv_sql respecting blanks SEPARATED BY space.

 

lr_sql_result = lr_sql_env->execute_query( lv_sql ).

   lt_meta = lr_sql_result->GET_METADATA( ).

 

   LOOP AT lt_meta INTO ls_meta.

*    IF SY-TABIX > 2.

*      EXIT.

*    ENDIF.

     ls_column = ls_meta-COLUMN_NAME.

     TRANSLATE ls_column to upper case.

     append ls_column to lt_column.

     gs_components-NAME = ls_meta-COLUMN_NAME.

     gs_components-TYPE ?= cl_abap_datadescr=>DESCRIBE_BY_DATA( P_DATA = ls_meta-DATA_TYPE ).

     REPLACE '.' INTO gs_components-NAME WITH ''.

     CONDENSE  gs_components-NAME.

     append gs_components to gt_components.

   ENDLOOP.

 

   DATA lr_tabledescr TYPE REF TO cl_abap_tabledescr.

 

 

  lr_tabledescr = cl_abap_tabledescr=>create(

  p_line_type  = CL_ABAP_STRUCTDESCR=>CREATE(

                     P_COMPONENTS          = gt_components

                 ) ).

 

  CREATE DATA tab_ref TYPE HANDLE lr_tabledescr.

 

lr_sql_result->SET_PARAM_TABLE(

   exporting

     ITAB_REF             tab_ref   " Reference to Output Variable

     CORRESPONDING_FIELDS = lt_column

).

*

***Execute the query

   lr_sql_result->NEXT_PACKAGE( ).

   v_rows = lr_sql_result->Next( ).

*

   ASSIGN tab_ref->* to <table>.

 

   LOOP AT <table> ASSIGNING <str>.

     MOVE-CORRESPONDING <str> to ls_data.

     append ls_data to lt_data.

   ENDLOOP.

 

   BREAK-POINT.


Viewing all articles
Browse latest Browse all 1183

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>