oracle 如何在ORDS中对数组中的值使用查询过滤

xtfmy6hx  于 2023-05-06  发布在  Oracle
关注(0)|答案(1)|浏览(186)

我有一个ORDS GET API端点,其结构如下所示,可在如下示例URI中使用:https://myapi.test/data/customer/:customer_id/connections

select :customer_id as CUSTOMER_ID, CURSOR(SELECT CONNECTION_ID,IS_ACTIVE from CONNECTIONS where CONNECTION_CUSTOMER_ID = :customer_id) AS CONNECTIONS FROM DUAL

这可以很好地工作,当与a:customer_id = 12345一起使用时,可以生成这种格式的JSON

{
    "customer_id": "12345",
    "connections": [{
        "connection_id": "123",
        "is_active": 0
    }, {
        "connection_id": "456",
        "is_active": 0
    }, {
        "connection_id": "789",
        "is_active": 1
    }, {
        "connection_id": "10",
        "is_active": 1
    }]
}

现在,我想使用这里介绍的内置ORDS查询过滤选项,只显示我的客户上活动的连接。
这就是我遇到问题的时候。这些是我尝试过的格式选项和结果。
| 格式|结果|错误信息|
| --------------|--------------|--------------|
| {“连接[*].active:“1”}|400 -错误请求|无消息|
| {“connections.active:“1”}|400 -错误请求|无消息|
| 联系我们_联系我们|第403节-第一次|无法处理请求,因为正在计算的SQL语句引用的函数不可访问或不存在|
| 联系我们_联系我们_联系我们|第403节-禁止|无法处理请求,因为正在计算的SQL语句引用的函数不可访问或不存在|
在这一点上,我开始怀疑是否有可能过滤数组中的值。如果这是可能的,那么我猜是我使用CURSOR函数创建数组导致了我的悲伤。

kmynzznz

kmynzznz1#

请尝试https://myapi.test/data/customer/:customer_id/connections?q={"is_active":1}。如果这不起作用,请提供实际的API详细信息。

相关问题