SAP HANA 數據庫提供了多種用于數據庫級別應用邏輯的編程選項。數據庫程序(用于實現應用邏輯)可以編寫為遵循 SAP HANA 數據庫 SQLScript 語法的查詢(query).
數據庫程序(database procedure
)可以具有多個輸入參數和輸出參數;它們可以是標量(scalar)類型(如整數、雙精度、varchar)或表類型。
使用ADT工具,可以通過以下方式實現HANA數據庫 procedure:
AMDP
AMDP的基本思想是在ABAP服務器內部
去管理 HANA 程序及其生命周期。為了允許在ABAP層內部采取原生方式
消費 HANA功能,HANA 數據庫的編程語言 SQLScript
已經集成到ABAP堆棧中了。AMDP 在 ABAP類方法中實現(稱為AMDP方法),作為 SQLScript
代碼的容器。這種設計思路提供了許多重要的優點:
它使 AMDP 能夠以與任何其他ABAP開發對象相同的方式進行交付(生命周期管理)。 它允許我們實現并交付AMDP的 bug correction,就像我們對普通的 ABAP 類打補丁一樣,比如包括 SAP Note支持(可支持性和可擴展性)。
Database 數據庫程序代理
SAP 官網的定義:
Using an implemented database procedure in the HANA repository, you have the option to create a corresponding proxy that is stored in the ABAP repository. The proxy represents the HANA database procedure interface in relation to ABAP programs.
在 HANA repository 中使用 implemented database procedure
,可以選擇創建一個相應的代理,該代理存儲在 ABAP 存儲庫中。該代理扮演了為 ABAP 程序提供 HANA database procedure 接口的角色。
SAP 建議使用ABAP管理的數據庫程序,而不是使用數據庫程序代理調用SQLScript程序。AMDP是數據庫程序代理的替代技術。只有在使用輔助數據庫連接來訪問 SAP HANA數據庫的特定情況下,才需要使用數據庫程序代理。在這種特定下,SAP HANA 數據庫并不是AS ABAP 系統的中央數據庫,這種場景也被稱之為 side-by-side scenario
)。