Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como selecionar um elemento específico de uma matriz JSON no tipo Oracles JSON CLOB


O JSON_path_expression suporta apenas algumas sintaxes básicas, de acordo com o manual :

JSON_path_expression::=



object_step::=



array_step::=



Uma abordagem alternativa é usar JSON_TABLE para converter o JSON em uma tabela relacional e, em seguida, projetar e filtrar as colunas.
select value
from json_table(
    '{
        "notUsed": [],
        "stock": [
            {
                "name": "eggs",
                "value": "in stock"
            },
            {
                "name": "milk",
                "value": "out of stock"
            }
        ]
    }',
    '$.stock[*]'
    columns
    (
        name varchar2(100 char) path '$.name',
        value varchar2(100 char) path '$.value'
    )
)
where name = 'eggs'

Resultados:
VALUE
-----
in stock