Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So wählen Sie ein bestimmtes Element aus einem JSON-Array im JSON-CLOB-Typ von Oracle aus

Der JSON_path_expression unterstützt nur einige grundlegende Syntax gemäß dem Handbuch :

JSON_Pfad_Ausdruck::=

object_step::=

array_step::=

Ein alternativer Ansatz besteht darin, JSON_TABLE zu verwenden, um die JSON in eine relationale Tabelle zu konvertieren und dann die Spalten zu projizieren und zu filtern.

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'

Ergebnisse:

VALUE
-----
in stock