Select para extraer de un JSON los elementos un nodo de tipo lista.
select id
from json_table('{"list_ids": [1,2,3,4]}'
format json, '$.list_ids[*]'
columns (
id number path '$'));
ID ---------- 1 2 3 4
Select para extraer de un JSON los elementos un nodo de tipo lista.
select id
from json_table('{"list_ids": [1,2,3,4]}'
format json, '$.list_ids[*]'
columns (
id number path '$'));
ID ---------- 1 2 3 4
Select para extraer datos de un JSON que informa varios items.
select id, nombre, familia
from json_table('[{id: 1, name: "Naranja", family: "Cítrico"},
{id: 2, name: "Tomate", family: "Hortaliza"}]'
format json, '$[*]'
columns (
id number path '$.id',
nombre varchar2 path '$.name',
familia varchar2 path '$.family'));
ID NOMBRE FAMILIA
----- --------------- ---------------
1 Naranja Cítrico
2 Tomate Hortaliza
La consulta siguiente muestra la conversión del formato de fechas RFC3339, muy común en servicios REST y objetos JSON, al timpo de dato timestamp nativo en Oracle.
select TO_TIMESTAMP_TZ('2020-12-15T15:20:28Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF9 TZH:TZM') as RFC3339_to_timestamp_zulu,
TO_TIMESTAMP_TZ('2020-12-15T15:20:28Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF9 TZH:TZM') AT TIME ZONE 'Europe/Madrid' as RFC3339_to_timestamp_madrid
from dual;
RFC3339_TO_TIMESTAMP_ZULU RFC3339_TO_TIMESTAMP_MADRID
--------------------------------- -------------------------------------------
15/12/2020 15:20:28,000000000 GMT 15/12/2020 16:20:28,000000000 EUROPE/MADRID