ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表

作者:ABAP技巧与实战 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, MM, 开发, 数据工程, 物料管理, 系统管理

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

前言

CATALOG 或者SCHEMA 都属于数据库的抽象概念,主要用来解决命名冲突问题.

本文主要讨论怎么在ABAP的环境下访问数据库其它CATALOG中的表.

CATALOG VS SCHEMA

之前也没有认真理解这两个概念的差异, 只知道是架构在表的上级层次,(就像表家族的姓氏一般.) 以为二者只是不同数据库对同一个概念的不同称呼.

网上搜索了一下,有人认真比对了二者的差异. 因为HANA数据库的小众化,列表中没有提及.

但是从HANA STUDIO中的查看, HANA应该是支持catalog,不支持schema ,同时,每个用户都会有一个同名的catalog

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

ABAP环境的CATALOG名

ECC/S4系统安装的时候,也会在HANA数据库中创建一个CATALOG.

可以通过数据库工具(TCODE:DB02,还有其它TCODE也能进入相同的界面)查看,大部分的ECC/S4系统使用的HANA CATALOG名称是

SAPABAP1 或者SAPHANADB .

似乎安装系统的过程中,BASIS可以自定义CATALOG名称. ABAP数据字典对应的表都在这个CATALOG中.

大部分情况也不需要访问其它CATALOG的表.

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

访问其它CATALOG的情况

如果使用了SLT同步数据表内容 .

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP操作手册之 LT数据同步配置

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247485198&idx=1&sn=347f54003b85c13e91a8b30cdaad0b9d&chksm=cf5dda38f82a532eb20ab75c79ff58af8dd16e2ce2c0e69ce3fd1fab70e3b489722b90ea96b0&token=874183752&lang=zh_CN#rd)

SLT工具为了避免目标数据库存在同名表,会根据同步的配置名创建一个同名的CATALOG. 在目标数据库的ABAP系统中, 如果需要访问这些同步过来的表,

就需要涉及到本文讨论的话题了. 怎么访问数据库中其它CATALOG的表.

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

访问方式

• SQL编辑器访问

• OPENSQL 访问

• ADBC访问

• 外部视图访问

• CDS视图访问(ADMP)

_**01** _

**SQL编辑器访问**

SQL编辑器是ABAP中的一个SQL语句编辑执行的工具(通过DB02事务代码可以进入),可以方便的创建记录访问数据库的SQL语句及查看执行情况.

SQL编辑器的底层逻辑使用了ADBC访问访问数据库.

这种访问方式不是一种正式的访问方式. 推荐大家使用它来熟悉表结构及内容.

之前写过一个代码生成工具, 可以直接通过在SQL语句中添加注释,来生成一个ABAP报表程序(该文章是付费文章, 无法引用,感兴趣的请自行查找)

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

_**02** _

**NATIVE SQL 访问**

NATIVE SQL 是ABAP中支持的一种通过数据库SQL语句访问本地或外部数据库(通过DBCO建立连接) 的方式.

> DBCO建立数据库连接 无峰,公众号:ABAP 技巧与实战 [ ABAP基础知识 访问外部数据库-配置篇

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486675&idx=1&sn=880947996ba5d9e851b666934c5d2f97&chksm=cf5dd1e5f82a58f3f4dfa774156a3853dcac4fc3950944ace75517dd689eceee2ca9aab19cb4&token=874183752&lang=zh_CN#rd)

> NATIVE SQL详见连接 无峰,公众号:ABAP 技巧与实战 [ ABAP基础知识 访问外部数据库-开发篇

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486714&idx=1&sn=8ac7061472f7e0ac9e0a3f3356c8c8c5&chksm=cf5dd1ccf82a58da1a12329e5a9a3eef13dc9a3ddc3aecd5a1e22d9579ce43e4caff739fd89c&token=874183752&lang=zh_CN#rd)

>

_**03** _

**ADBC访问**

> ADBC 访问方式详见 无峰,公众号:ABAP 技巧与实战 [ ABAP基础知识 访问外部数据库-开发篇

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486714&idx=1&sn=8ac7061472f7e0ac9e0a3f3356c8c8c5&chksm=cf5dd1ccf82a58da1a12329e5a9a3eef13dc9a3ddc3aecd5a1e22d9579ce43e4caff739fd89c&token=874183752&lang=zh_CN#rd)

数据同步平台也是采用的这种方式访问外部数据库

_**04** _

**外部视图访问**

先在HANA STUDIO 中创建HANA视图. (怎么创建HANA视图不在本文讨论范畴,有兴趣的可以自行百度). HANA视图的 default

client 属性中的session client 依赖于用户主记录中维护的session client . 建议session client 维护成

cross , 同时HANA视图中添加MANDT 字段. 在应用层面再确定CLIENT

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

用ECLIPS创建外部视图

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

外部视图可以在SE11/SE16N中访问. 同时可以像ABAP视图一样在ABAP语句中直接访问

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

_**05** _

**CDS视图访问(AMDP)**

AMDP(ABAP Managed Database Procedures)

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

AMDP是一种特殊的调用HANA 原生SQL的方式

CDS视图中是不支持直接使用HANA SQL语句, 只能如下方式实现.

创建一个类(该类只能在ECLIPSE中创建,SAPGUI中只能查看, 不能创建)和CDS视图配合来完成对数据库中其它CATALOG中的表的访问

1. 指定类使用特定的界面

2. 指定类方法关联 TABLE FUNCTION (CDS视图中的TABLE FUNCTION)

3. 指定类方法中使用SQL脚本,只读属性

4. 原生HANA SQL语句

5. CDS中定义的TABLE FUNCTION 同2

6. 指定CDS视图执行创建的类方法

创建好的CDS视图因为不能定义ABAP视图名称, 因此无法通过SE11/SE16N访问, 只能通过ABAP语句访问

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

总结

本文的部分内容和前序访问外部数据库的方式有些重叠.

访问数据库的CATALOG也可以理解成访问一个指定的外部数据库(在创建DBCO连接时可以执行CATALOG的名称). 所以二者使用的方法是一致的.

最后两种(通过HANA视图创建外部视图访问,及通过CDS 及ADMP访问)就比较有针对性了. 更贴近本文的主题.

总之, 条条大路通罗马, 选择一个你最熟悉的路,或者在百度地图中标识最近的直通罗马. 咱们罗马见.

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图
ABAP 基础知识怎么访问 HANA 数据库中的其它 CATALOG 的表 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAP基础知识怎么访问HANA数据库中的其它CATALOG的表.md」整理生成,仅用于内部技术分享与学习交流。