如何将 SQL Server 表导入 itab? [英] How to import SQL Server table to itab?

查看:30
本文介绍了如何将 SQL Server 表导入 itab?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以将SQL Server表中的数据直接导入到内表(itab)中?

is it possible to import data in SQL Server table to internal table (itab) directly?

我想在 SE37 函数中使用这个 itab.提前致谢

I want to use this itab in a SE37 function. thanks in advance

推荐答案

对于您的任务,您可以使用功能模块 (SE37),也可以使用模块池或报告(SE38、SE80).检查此报告:

For your task you can use a function module (SE37) or you can use module pool, or a report (SE38, SE80). Check this report:

report zinsertdb.

data: oref   type ref to cx_root,
      p_conex type dbcon_name value 'YOUR_DB_CONNECTION_STRING', " Ask the basis for this
      lv_sw type c,
      errormessage type string.

data it_mydata type standard table of mara.

start-of-selection.

  perform connect.
  perform insert_into_db.
  perform disconnect.

form connect.
  try.
      EXEC SQL.
        CONNECT TO :p_conex
      ENDEXEC.
      lv_sw = 'X'.
    catch cx_sy_native_sql_error into oref.
      lv_sw = space.
      errormessage = oref->get_text( ).
  endtry.
endform.

form disconnect.
  clear errormessage.
  if lv_sw = 'X'.
    try.
        EXEC SQL.
          COMMIT
        ENDEXEC.
      catch cx_sy_native_sql_error into oref.
        errormessage = oref->get_text( ).     
    endtry.
  endif.
endform.

form insert_into_db.

   data wa_mydata like line of it_mydata.
   data zcount type i.

   select * from mara into corresponding fields of table it_mydata.

   if sy-subrc EQ 0.

     loop at it_mydata into wa_mydata.

        try .

            exec sql. 
              EXECUTE PROCEDURE sp_get_data ( IN :wa_mydata-EAN11, IN :wa_mydata-MEINS, OUT :zcount ) 
            endexec.

            if zcount eq 0.
              exec sql.
                INSERT INTO "Your_Database".dbo.[Your_table]
                (Field1, Field2, Field3, FieldN)
                 VALUES (:wa_mydata-matnr,
                         :wa_mydata-ean11,
                         :wa_mydata-matkl,
                         :wa_mydata-meins)
              endexec.
              lv_sw = 'X'.
            endif.

          catch cx_sy_native_sql_error into oref.
            lv_sw = space.
            errormessage = oref->get_text( ).   
        endtry.

     endloop.

   endif.

endform.

希望有帮助.

这篇关于如何将 SQL Server 表导入 itab?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆