Oracle APEX 是一个强大的低代码开发平台,用于构建可扩展和安全的企业应用。它通过集成越来越多的低代码功能不断优化开发人员的体验,简化应用开发。
随着 Oracle APEX 24.2 的发布,引入了JSON数据源,允许用户创建可以直接通过新的JSON源共享组件与JSON数据进行交互的APEX应用程序或组件。此前,要开发基于JSON数据的APEX应用程序,需要将数据存储在临时表或集合中,然后在APEX应用程序中解析它。此次新功能使客户能够构建可以直接处理JSON数据的APEX应用程序,从而避免将数据存储在临时表或集合中进行解析和显示。
通过24.2版本的新功能,用户现在可以开发Oracle APEX组件、页面和应用程序,这些应用程序可以利用来自具有JSON列的表或JSON集合的JSON数据。在本文中,我们将探讨使用“具有JSON列的表”方法创建和加载JSON数据的方法,因为我们已经熟悉将JSON数据加载到集合中的过程。
JSON数据源
- 1.在选择“包含 JSON 列的表”选项时,必须在与 APEX 同一数据库中存在一个包含 JSON 列的表,或者该表可以通过 REST 启用的 SQL 服务访问。
- 2.如果您选择“JSON 集合表”选项,必须在与 APEX 相同的数据库中创建一个集合,或者可以通过 REST 启用的 SQL 服务访问该集合。
- 3.如果集合是在本地数据库中创建的,它将在对象浏览器中的 SODA 集合中列出。
- 4.对于“JSON 集合表”选项,开发者可以提供一个 JSON 模式文件,如果他们没有提供,APEX 会从数据中推断出模式。
注意: 如果您想使用“JSON Collection Table”选项,需要 Oracle Database 23ai。对于“具有JSON列的表”选项,您可以使用Oracle database 19c以及Oracle APEX 24.2。
在本文中,我们将使用“带有JSON列的表格”功能,从而可以构建一个简单的表格,其中包含一个CLOB列,用于存储 JSON 数据,特别是与 PurchaseOrder-LineItems 相关的数据。
先决条件
在配置 Oracle APEX 的JSON源之前,必须满足以下先决条件:
在您的 Oracle 数据库中执行以下SQL命令以创建一个CLOB数据类型的数据表。该表将用于将JSON数据导入CLOB字段中。
1 | create table my_json_table( |
创建带有JSON列的表以及将数据加载到其中的方法在不同的Oracle数据库版本中保持一致,无论是使用Oracle数据库 19c还是23ai。需要注意的是,Oracle APEX 24.2 至少需要Oracle数据库版本19c。
现在表已经创建好了,我将使用SQL Workshop数据加载功能将附带的数据导入到之前创建的表中。必须使用制表符()作为列分隔符,并禁用引号,以确保APEX有效地将每一行数据加载到表的CLOB列中。
PurchaseOrders-json.txt包含用于加载到 MY_JSON_TABLE CLOB 字段 (DOC) 的数据
这完成了将JSON数据加载到表中的过程。接下来,我们可以通过选择“查看表”来迅速检查表中的数据。
配置
要配置JSON源,请遵循这些步骤:
- 1.在您的 Oracle APEX 工作区中,选择您希望设置 JSON Sources 作为数据源的应用程序,然后前往共享组件,选择数据源接着选择 JSON Sources(共享组件 → 数据源 → JSON Sources)。
- 2.为您的JSON源命名,并选择合适的JSON源类型,该类型可以是带有JSON列的表或JSON集合表。就本文档的上下文而言,请选择“带有JSON列的表”,并选择之前创建的表。
- 3.作为下一步,请选择至少一列包含JSON文档。可选地上传一个JSON Schema文件,以便APEX在点击“下一步”之前推断JSON结构。
4.对于这篇博客,我们将使用下面提到的schema文件,该文件对应于我上传到表中的数据。PurchaseOrders JSON Schema
5.在数据概要页面上,选择与各种父列对应的适当字段作为主键,然后点击“创建”以在您的 Oracle APEX 应用中生成JSON源。下面的片段说明了如何从CLOB列或上传的JSON模式中识别数组/父列,从而生成数据概要。
我们成功创建了 JSON 源。现在让我们探索在 Oracle APEX 中我们可以用 JSON 源做什么。
Demo
您可以在Oracle APEX应用中使用JSON源作为数据源创建不同类型的页面、值列表和搜索配置。下面的示例展示了如何选择JSON源作为数据源以创建交互式报告。
请参阅下方的GIF,了解开发人员如何在 Oracle APEX 中使用JSON源进行低代码应用开发。
二元性视图
随着 Oracle Database 23ai 的发布,通过引入二元性视图,对JSON数据的支持得到了增强。这些视图基于标准关系表构建,镜像JSON负载的结构,用于选择、插入、更新和删除操作。用户可以使用JSON数据指定所需的操作(选择、插入、删除或更新),相应的操作将在底层关系表上执行。
先决条件
在配置 Oracle APEX 的二元性视图之前,必须满足以下先决条件:
- 二元性视图必须存在于Oracle数据库中。它可以位于与您的APEX应用程序相同的模式中,或者可以通过REST启用的SQL服务访问。
- 需要执行的操作,如选择、插入、更新或删除,应该在Duality视图本身中定义,该视图应遵循类似JSON的结构。
- 如果将来需要对JSON格式进行任何修改,这些更改必须在数据库级别进行,并且需要相应地更新APEX中的数据配置文件。
以下是用于在Emp和Dept表上创建JSON关系二元性视图以执行插入、更新和删除操作的语法。
1 | create or replace json relational duality view deptemp_sql_dv as |
配置
要在您的 Oracle APEX 工作区中配置或创建二元性视图,请遵循这些步骤:
- 1.从您的 Oracle APEX 工作区中选择一个应用程序,您希望在那里建立 Duality Views 作为数据源。接下来,前往共享组件 → 数据源 → Duality Views。
- 2.要在您的 Oracle APEX 工作区中开始创建一个新的二元性视图,请点击“创建”。为二元性视图命名并选择其位置,无论是本地数据库还是REST启用的SQL服务。然后,从下拉菜单中选择二元性视图并点击“下一步”。
注意:这是我们在Oracle数据库先决条件部分创建的二元性视图。
- 3.在数据概要页面上,选择与各种数组列对应的适当字段作为主键,然后点击“创建”以在您的 Oracle APEX 应用中创建/配置二元性视图。
Demo
您可以在 Oracle APEX 应用程序中以二元性视图作为数据源创建不同类型的页面、值列表和搜索配置。下面的代码片段展示了您如何选择二元性视图作为数据源以创建一个交互式报表。
按照下方的GIF,了解开发人员如何在 Oracle APEX 中使用二元性视图进行低代码应用开发。
注意:您可以从这里了解更多关于Oracle二元性视图的信息,它是 Oracle Database 23ai 的一部分。
开发者可以使用JSON源或二元性视图构建的组件如下:
- 图表
- 日历
- 卡片
- 内容行
- 交互式网格
- 交互式报告
- 经典报告
- 重排报告
- 表单
- 主-从
- 智能过滤器
- 搜索页面
- 分面搜索
- 值列表
- 搜索配置
用法
我们现在已经探讨了JSON源和双重视图的概念。接下来,让我们考察这些概念可以应用的场景。
JSON源
- JSON数据源非常适合需要直接与JSON数据进行交互的场景,无需定位和配置REST源API。
- JSON团队旨在通过使用Mongo应用程序与MongoDB客户建立联系。通过导出数据并将JSON加载到Oracle中,他们可以使用APEX创建报告和仪表板。
- 当您的数据仅由JSON文档组成,并且您希望利用APEX进行快速可视化和简单表单时,这种方法特别有益。
对偶视图。 - JSON二元性视图使应用程序能够直接访问以JSON格式的关系表。
结论
整合JSON源和二元性视图到 Oracle APEX 应用程序中,使组件开发更加灵活和动态。这种方法增强了数据处理,并简化了复杂、交互式用户界面的创建。通过利用这些技术,开发者可以以最小的努力创建更强大和响应迅速的APEX应用程序。