ABAP 将相同结构的A表数据COPY到B表中

Posted jingqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP 将相同结构的A表数据COPY到B表中相关的知识,希望对你有一定的参考价值。

主要就是动态内表


PARAMETERS: p_tabf TYPE dd02l-tabname,   "原表名称
            p_tabt TYPE dd02l-tabname.   "备份表名称
DATA: it_tabf TYPE lvc_t_fcat,
      it_tabt TYPE lvc_t_fcat.
DATA: it_tabfc TYPE lvc_t_fcat,
      it_tabtc TYPE lvc_t_fcat.
DATA: lcx_error TYPE REF TO cx_root.
DATA: dy_table TYPE REF TO data,
      dy_line  TYPE REF TO data.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE.
*               <dyn_wa>,
*               <dyn_field>.
FIELD-SYMBOLS: <fs_tab> LIKE lvc_s_fcat.

CALL FUNCTION ‘LVC_FIELDCATALOG_MERGE‘
  EXPORTING
    i_client_never_display ‘‘
    i_structure_name       = p_tabf
  CHANGING
    ct_fieldcat            = it_tabf
  EXCEPTIONS
    inconsistent_interface 1
    program_error          2
    OTHERS                 3.

CALL FUNCTION ‘LVC_FIELDCATALOG_MERGE‘
  EXPORTING
    i_client_never_display ‘‘
    i_structure_name       = p_tabt
  CHANGING
    ct_fieldcat            = it_tabt
  EXCEPTIONS
    inconsistent_interface 1
    program_error          2
    OTHERS                 3.

it_tabfc = it_tabf.
it_tabtc = it_tabt.
LOOP AT it_tabfc ASSIGNING <fs_tab>.
  CLEAR: <fs_tab>-ref_table.
ENDLOOP.

LOOP AT it_tabtc ASSIGNING <fs_tab>.
  CLEAR: <fs_tab>-ref_table.
ENDLOOP.

IF it_tabfc <> it_tabtc.
  MESSAGE ‘复制的原表与目的表结构不一致,请确认‘ TYPE ‘S‘ DISPLAY LIKE ‘E‘.EXIT.
ENDIF.

CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
    it_fieldcatalog = it_tabf
* I_LENGTH_IN_BYTE = ‘X‘
  IMPORTING
    ep_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.

SELECT * INTO TABLE <dyn_table> FROM (p_tabf.
IF sy-subrc 0.
  TRY.
      DELETE FROM (p_tabt).   "清除TO表中所有数据
      INSERT (p_tabtFROM TABLE <dyn_table>.
    CATCH cx_sy_open_sql_db INTO lcx_error.
  ENDTRY.
  IF sy-subrc 0.
    COMMIT WORK.
    MESSAGE ‘数据备份成功‘ TYPE ‘S‘.
  ELSE.
    ROLLBACK WORK.
    MESSAGE ‘数据备份失败,请重试‘ TYPE ‘S‘ DISPLAY LIKE ‘E‘.
  ENDIF.
ENDIF.

以上是关于ABAP 将相同结构的A表数据COPY到B表中的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!

Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!

abap怎么把一个内表A的全部数据赋值到另外一个内表B

详解ABAP/4内表结构

abap中数据累加的问题

ABAP从较大内表取部分数据到较小内表中 怎么取 可以按字段直接取数吗?