L'expression_chemin_JSON ne prend en charge qu'une syntaxe de base, selon le manuel :
JSON_path_expression ::=
object_step ::=
array_step ::=
Une autre approche consiste à utiliser JSON_TABLE pour convertir le JSON en une table relationnelle, puis projeter et filtrer les colonnes.
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'
Résultats :
VALUE
-----
in stock