Oracle 如何访问apex web服务模块响应正文中的集合
目标:以包含json集合的交互式网格、报表和/或表单的形式呈现rest服务中的APEX Web服务模块数据(例如联系人数据)。在引用的联系人示例中,重复标记和电话号码等数据 环境:Oracle云自治事务处理19c APEX v20 问题1:成功创建了一个Web服务模块,以及一个带有引用Web服务模块数据的交互式网格的页面。但是IG region列不包括对收集数据的引用,例如标签和电话号码。数据确实出现在Web服务模块响应主体中,因此我知道它正在将数据带回 问题2:当我尝试使用PL/SQL访问数据时,如下面的示例所示,没有返回任何数据Oracle 如何访问apex web服务模块响应正文中的集合,oracle,plsql,oracle-apex,Oracle,Plsql,Oracle Apex,目标:以包含json集合的交互式网格、报表和/或表单的形式呈现rest服务中的APEX Web服务模块数据(例如联系人数据)。在引用的联系人示例中,重复标记和电话号码等数据 环境:Oracle云自治事务处理19c APEX v20 问题1:成功创建了一个Web服务模块,以及一个带有引用Web服务模块数据的交互式网格的页面。但是IG region列不包括对收集数据的引用,例如标签和电话号码。数据确实出现在Web服务模块响应主体中,因此我知道它正在将数据带回 问题2:当我尝试使用PL/SQL访问数据
Declare
l_Var Varchar2(3000);
Begin
l_Var := apex_web_service.make_rest_request
(
p_url => 'https://api.crmworkspace.com/v1/contacts',
p_http_method => 'GET',
p_parm_name => apex_util.string_to_table('ACCESS_TOKEN'),
p_parm_value => apex_util.string_to_table('NotMyRealToken')
);
Dbms_output.put_line('*' || l_Var);
End;
我做错了什么
谢谢
Joe对“问题1”的回答:
APEX中的Web源模块总是将RESTAPI的响应视为一个包含行和列的“表”——正如APEX组件所期望的那样。因此,Web源模块可以处理响应中的一个数组,它构成了行。在一行中,无法处理数组,因为这需要一个“嵌套”表。您可以手动修改Web源模块的数据配置文件,并包括特定的数组元素:
- 编辑数据配置文件
- 添加一列
- 提供名称、数据类型和选择器。然后,选择器使用JSON数组语法,例如,
orderItems[0]
apex\u web\u service.g\u status\u code
)。这可能是400、500或其他错误响应。浏览响应头数组也会有所帮助
for h in 1 .. apex_web_service.g_response_headers.count loop
dbms_output.put_line( apex_web_service.g_response_headers(h).name );
dbms_output.put_line( apex_web_service.g_response_headers(h).value );
end loop;
错误是什么?谢谢!你的回答对它的实施非常有帮助。对于问题2,结果是我包含了一个额外的头变量,该服务不喜欢它,但它没有包含在web服务模块中。而且,问题1的答案非常合理。