How to get the number of elements in a JSON array stored as CLOB with Oracle 12c? How to get the number of elements in a JSON array stored as CLOB with Oracle 12c? json json

How to get the number of elements in a JSON array stored as CLOB with Oracle 12c?


You can use JSON_TABLE:

SELECT    id, var1, count(sub_id) subvaluesFROM    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 


the function exists in Oracle 18 only

SELECT json_query('[19, 15, [16,2,3]]','$[*].size()' WITH ARRAY WRAPPER)  FROM dual;SELECT json_value('[19, 15, [16,2,3]]','$.size()')  FROM dual;