No Oracle Database, o
JSON_ARRAYAGG()
A função cria uma matriz JSON de uma coluna de expressões SQL. Sintaxe
A sintaxe fica assim:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
)
Onde:
expr
é qualquer expressão SQL que avalia como um objeto JSON, uma matriz JSON, um literal numérico, um literal de texto ounull
.FORMAT JSON
indica que a string de entrada é JSON e, portanto, não será citada na saída.order_by_clause
permite ordenar os valores JSON dentro da matriz JSON retornada pela instrução.JSON_on_null_clause
especifica o comportamento a ser usado quandoexpr
avalia como nulo (ou seja, inclua valores nulos na saída ou não).JSON_agg_returning_clause
especifica o tipo de dados da cadeia de caracteres retornada por esta função.STRICT
verifica se a saída da função de geração JSON é o JSON correto. Se a verificação falhar, um erro de sintaxe será gerado.
Exemplo
Suponha que executemos a seguinte consulta SQL:
SELECT region_name
FROM regions;
E retorna a seguinte saída:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Se quiséssemos que todos esses valores fossem elementos em uma matriz JSON, poderíamos passar o nome da coluna para o
JSON_ARRAYAGG()
função. Assim:
SELECT JSON_ARRAYAGG(region_name)
FROM regions;
Resultado:
["Europe","Americas","Asia","Middle East and Africa"]
Ordem por cláusula
Aqui está um exemplo de uso do
ORDER BY
cláusula dentro da função:SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions;
Resultado:
["Middle East and Africa","Europe","Asia","Americas"]
Esse exemplo classificou os elementos da matriz em ordem decrescente.
Aqui está em ordem crescente:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions;
Resultado:
["Americas","Asia","Europe","Middle East and Africa"]
Consulte a documentação do Oracle para obter mais informações sobre essa função.