ABAP Keyword Documentation → ABAP - Reference → Creating Objects and Values → CREATE DATA → CREATE DATA - TABLE OF
Creating Tabular Data Objects
This example demonstrates how tabular data objects are created.
Other versions: 7.31 | 7.40 | 7.54
Source Code
    DATA dref TYPE REF TO data.
    DATA: dbtab TYPE tabname VALUE 'SPFLI',
          rows  TYPE i VALUE 100.
    FIELD-SYMBOLS <table> TYPE ANY TABLE.
    cl_demo_input=>new(
      )->add_field( CHANGING field = dbtab
      )->add_field( CHANGING field = rows )->request( ).
    DATA(out) = cl_demo_output=>new( ).
    dbtab = to_upper( dbtab ).
    TRY.
        cl_abap_dyn_prg=>check_table_name_str(
          val = dbtab
          packages = 'SAPBC_DATAMODEL' ).
      CATCH cx_abap_not_a_table.
        out->display( 'Database table not found' ).
        LEAVE PROGRAM.
      CATCH cx_abap_not_in_package.
        out->display(
          'Only tables from the flight data model are allowed' ).
        LEAVE PROGRAM.
    ENDTRY.
    TRY.
        CREATE DATA dref TYPE STANDARD TABLE OF (dbtab)
                              WITH NON-UNIQUE DEFAULT KEY.
        ASSIGN dref->* TO <table>.
        SELECT *
               FROM (dbtab) UP TO @rows ROWS
               INTO TABLE @<table>.
        out->display( <table> ).
      CATCH cx_sy_create_data_error.
        out->display( 'Error in data creation' ).
    ENDTRY.
Description
Creates an internal table that matches any database table and reads the first few rows
(rows) of the database into the internal table. Since the data reference
dref is typed dynamically, the internal table can only be read using the  field symbol <tab>.
The method CHECK_TABLE_NAME_STR of the class CL_ABAP_DYN_PRG checks whether the database table specified exists and can be used.