SAP-ABAP 调用外部数据库获取数据

SAP 中可以通过配置数据库的链接,来完成从SAP链接到外部的数据库中进行处理数据,具体操作如下:
1、先进入事务:DBCO,设置数据库链接。进入该事务后,如果系统已经有配置过类似链接则会出现在如下画面中,如图:

2、在该配置中的难点在于您使用的服务器类型,sap中提供多种选择:

3、说其是难点,是因为不同的数据库类型,在‘链接信息’这栏填写的内容格式是不一样的,重点说明MSS和ORA(因为我只用到了这两种);

a)、SQL Server

这里的连接信息很接近 Sql  Server  的连接字符串,但是参数名略有不同。指定主机IP、端口号、数据库名即可。

b)、Oracel

oracel的链接信息比较隐晦,必须在 SAP 应用服务器上安装 Oracel client  ,然后设置链接,再在这里的链接信息进行指定。

4、设置完事务DBCO后,就可以进行编写代码测试链接是否成功。(注:任何数据库配置信息都存放在表DBCON中)

5、测试是否联通 ADBC_TEST_CONNECTION

 

 

如下代码测试:

data: g_errorstr(250) type c.
data g_conexion like dbcon-con_name value 'ZYUN'.   "ZYUN即DBCO中配置的数据库链接名称
data: exec_ref      type ref to cx_sy_native_sql_error,
      error_text    type string,
      cl_sqlerr_ref type ref to cx_sql_exception.
  perform sub_conndb using g_conexion.  "调用模块,打开数据库链接
 
  try.
      exec sql .
******根据OPEN SQL 编写SQL 语句 
*例:
        SELECT ANLN,
               MCOA1,
               BUKRS,
               DZSX,
               AUFNR1
        INTO :gw_out-ANLN,
             :gw_out-MCOA1,
             :gw_out-BUKRS,
             :gw_out-DZSX,
             :gw_out-AUFNR1
          FROM ZZTLD_BASE_FI_SALEORDER_004
          WHERE ZTYPE is NULL
 
      endexec.
 
    catch cx_sy_native_sql_error into exec_ref.
 
      g_errorstr = exec_ref->get_text( ).
      concatenate '读取数据出错,'  g_errorstr into g_errorstr.
 
      write:/ g_errorstr.
    catch cx_sql_exception into cl_sqlerr_ref.
 
 
      if not g_errorstr is initial.
 
        clear g_errorstr.
        exec sql.
          rollback
        endexec.
      else.
        exec sql.
          COMMIT
        endexec.
      endif.
 
  endtry.
 
 
*  关闭连接
  exec sql.
    DISCONNECT :G_CONEXION
  endexec.
 
 
 
 
*打开数据库链接模块编写
FORM sub_conndb USING conn LIKE dbcon-con_name.   
  CLEAR g_errorstr.
  g_conexion = conn.
  TRY.
      "--  连接SQL SERVER
      EXEC SQL.
        CONNECT TO :G_CONEXION
      ENDEXEC.
    CATCH cx_sy_native_sql_error INTO exec_ref.
      CONCATENATE '无法连接至SQL数据库   连接名:' g_conexion INTO g_errorstr.
  ENDTRY.
ENDFORM.
调用中间数据库

 

      exec sql performing pf_get_zz.
 
      SELECT AUFNR,
        KTEXT,
        BUKRS,
        DZSX
      INTO :gw_out-AUFNR,
      :gw_out-KTEXT,
      :gw_out-BUKRS,
      :gw_out-DZSX
   FROM ZZTLD_BASE_FI_SALEORDER_002
   WHERE ztype is  NULL
 
      endexec.
 
 
form pf_get_zz.
 
 
  append gw_out to gt_out .
 
  clear: gw_out,gw_return.
 
endform.
从中间库查询到多条数据,插入到内表,然后处理数据


————————————————
版权声明:本文为CSDN博主「酒剑仙abc」的原创文章,感谢分享!
原文链接:https://blog.csdn.net/fengxin_/article/details/106238126

 

SAP HANA SLT 将Oracle表 数据同步到HANA数据库

简单介绍SLT 同步数据的整个配置过程:

  1. 在SLT系统中创建与Oracle的链接
  2. 在HANA监控平台上,创建Configuration
  3. 创建表的同步作业

——————————————BEGIN—————————————————————————

1.在SLT系统中创建与Oracle的链接

在SLT系统中输入T-Code:dbacockpit

1.选择 Database Connections

2.选择Oracle

3.单击ADD按钮,新建一个与Oracle数据库的连接

如图:

 

上图中是链接Oracle数据库的一些参数。输入相应的连接参数后,点击运行,测试是否连接成功。

2.在HANA监控平台上,创建Configuration

T-code:ltrc

点击新建按钮,进入向导。

源端是我们之前创建的Oracle链接

目标端为HANA数据库的连接信息

3.创建表的同步作业

点击进去创建好的Configuration

 

输入表名,点击运行。

 

  • start load 数据只一次抽取
  • start replication 数据实时同步
  • stop load/replication 停止同步

这是同步作业就会出现在平台上,可以监控它的运行情况。

--------------END--------------------------------------------------------

posted on 2021-09-02 10:11  Violin_Huang  阅读(1325)  评论(0编辑  收藏  举报

导航