ABAP Databases,oracle,MaxDB et al.,主要是RDBMS。现在,我有一个无法规范化的 JSON 结构,因此我想按原样存储它。所以,我想要ABAP中一个类似MongoDB的对象存储。
实现这一目标的最佳方法是什么?数据群集是否是一种选择?也许是唯一的选择?
我认为您无法直接从ABAP连接到其他受支持的数据库。如果你有Netweaver Java,你可以调用一些访问MongoDB的自定义Java应用程序。您可以检查SAP Hana是否有类似的东西。在ABAP中,您可以通过ABAP字典与RDBMS进行交互。它支持LCHR
、STRING
、RAWSTRING
等数据类型。查看文档以获取更多详细信息。
数据群集是一个选项,但只需使用二进制类型的数据库字段来存储 JSON 数据。
在ABAP中有一种称为转换的方法,它将ABAP数据转换为XML/JSON数据,反之亦然。
以下博客上有一个简单的示例:https://blogs.sap.com/2013/07/04/abap-news-for-release-740-abap-and-json/
博客页面上的评论包含更多信息。
简而言之:
您可以简单地将 JSON 存储在任何 RDBMS 的 LOB 列中,该列对应于 ABAP 字典中的数据类型STRING
(字符/CLOB(或RAWSTRING
(字节/BLOB(。
就是这样。
<小时 />PS:关于另外两个答案:
- 不要使用限制为 32000 个字符的
LCHR
(也不要使用限制为 32000 字节的LRAW
( - 我认为没有充分的理由使用数据群集(如果要压缩JSON,请使用ZIP或任何标准格式,而不是SAP专有格式(。问题不在于操作/转换JSON,而只是将JSON存储在RDBMS中。