ABAP- 使用 CDS 连接到另一个 SAP HANA 数据库

在ABAP程序中,可以使用CONNECTION选项与OpenSQL配合来查询其他数据库,例如:`SELECTvbelnINTOTABLElt_vbakFROMvbakWHEREmandt=500CONNECTION(SECOND_DB).`但需确保在DDIC中定义了与查询表结构相同的表。CDS视图中是否直接支持此功能未明确,可能需要结合表函数使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

abap - 使用 CDS 连接到另一个 SAP HANA 数据库

标签 abap cds

我在事务 DBCO 中输入了一个新的数据库连接到另一个 sap 系统。并使用报告 ADBC_TEST_CONNECTION 成功测试它。

如何在 CDS View 中使用此连接?有可能吗?我认为它可以与表函数一起使用,但没有让它起作用。

或者我尝试在 abap 程序中使用它但没有成功:

  data: lt_vbak(20).

  exec sql.
    CONNECT TO 'SECOND_DB'
  endexec.
  exec sql.
    SELECT vbeln into :lt_vbak FROM vbak where mandt = 500
  endexec.
  exec sql.
    DISCONNECT :'SECOND_DB'
  endexec.

它说 vbak 表不存在。

我们目前使用 SAP ECC 和 ABAP 7.50。

有什么建议吗? 谢谢

最佳答案

不确定 CDS View ,但在 ABAP 程序中,您可以通过 Open SQL 使用 CONNECTION 选项并指定辅助数据库连接的名称来完成:

SELECT vbeln INTO TABLE lt_vbak FROM vbak WHERE mandt = 500 CONNECTION ('SECOND_DB').

*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztest9999aaaa.
BREAK-POINT.

SELECT mandt, vbeln  FROM vbak "  wHERE mandt = 300
  INTO TABLE @DATA(lt_vbak)
  CONNECTION s4q_non_system.
BREAK-POINT.
cl_demo_output=>display( lt_vbak ).

但是,这需要您在 ECC 系统的 DDIC 中定义与您正在查询的 VBAK 具有相同结构的表 VBAK。

另请参阅此处连接参数的文档:SELECT additional options

关于abap - 使用 CDS 连接到另一个 SAP HANA 数据库,我们在Stack Overflow上找到一个类似的问题: abap - Connect to another SAP HANA database with CDS - Stack Overflow

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值