sql >> Database teknologi >  >> RDS >> Oracle

Sådan vælger du specifikt element fra et JSON-array i Oracles JSON CLOB-type

JSON_path_expression understøtter kun nogle grundlæggende syntaks, ifølge manualen :

JSON_path_expression::=

object_step::=

array_step::=

En alternativ fremgangsmåde er at bruge JSON_TABLE til at konvertere JSON til en relationstabel og derefter projicere og filtrere kolonnerne.

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'

Resultater:

VALUE
-----
in stock



  1. Hvad er bedre? Underforespørgsler eller indre sammenføjning af ti tabeller?

  2. Hvordan ser Alter Table-syntaksen ud for at tilføje en DATETIME-kolonne?

  3. Hvordan opdager man deadlocks i Mysql / innodb?

  4. Sådan formateres tal med et minus/plus-log i Oracle