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:
expres 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 JSONindica que la cadena de entrada es JSON y, por lo tanto, no se citará en la salida.JSON_on_null_clauseespecifica el comportamiento a usar cuandoexprcontiene un valor nulo (es decir, incluye valores nulos en la salida o no).JSON_returning_clauseespecifica el tipo de valor devuelto.STRICTcomprueba 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.