En Oracle Database, JSON_ARRAY()
La función crea una matriz JSON a partir de una secuencia de expresiones escalares de SQL o una instancia de tipo de colección, VARRAY
o NESTED TABLE
.
Sintaxis
La sintaxis es así:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Dónde:
expr
es cualquier expresión SQL que se evalúa como un objeto JSON, una matriz JSON, un literal numérico, un literal de texto, fecha, marca de tiempo onull
.FORMAT JSON
indica que la cadena de entrada es JSON y, por lo tanto, no se citará en la salida.JSON_on_null_clause
especifica el comportamiento a usar cuandoexpr
contiene un valor nulo (es decir, incluye valores nulos en la salida o no).JSON_returning_clause
especifica el tipo de valor devuelto.STRICT
comprueba si la salida de la función de generación de JSON es JSON correcta o no. Si la comprobación falla, se genera un error de sintaxis.
Ejemplo
Aquí hay un ejemplo para demostrar cómo funciona:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Resultado:
[1,2,3]
Anidado
También puede anidar JSON_ARRAY()
funciones dentro de otro JSON_ARRAY()
función:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Resultado:
[[1,2,3],[4,5,6]]
El FORMAT JSON
Cláusula
Puedes usar el FORMAT JSON
cláusula para indicar que la cadena de entrada es JSON y, por lo tanto, no debe citarse en la salida.
Aquí hay un ejemplo para demostrarlo:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Resultado:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Valores nulos
Puede especificar si se incluyen o no valores nulos en la matriz resultante.
Para incluirlos, use NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Resultado:
[1,null,3]
Para excluirlos, use ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Resultado:
[1,3]
ABSENT ON NULL
es el predeterminado.
Consulte la documentación de Oracle para obtener una explicación más detallada de esta función.