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

Como obter o número de elementos em um array JSON armazenado como CLOB com o Oracle 12c?


Você pode usar JSON_TABLE:
SELECT
    id, var1, count(sub_id) subvalues
FROM
    JSON_TABLE (
        to_clob('{ id: 123, var1: "abc", subvalues : [{ id: 1, value: "a", }, { id: 2, value: "b" } ]}'),
        '$'
        COLUMNS (
            id NUMBER PATH '$.id',
            var1 VARCHAR PATH '$.var1',
            NESTED PATH '$.subvalues[*]'
            COLUMNS (
                sub_id NUMBER PATH '$.id'
            )
        )
    )
GROUP BY id, var1