O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog
Função JSON_ARRAY_LENGTH
nota
O JSON_PARSE e suas funções associadas analisam os valores JSON como SUPER, que o Amazon Redshift analisa com maior eficiência do que o VARCHAR.
Em vez de usar JSON_ARRAY_LENGTH, recomendamos que você analise suas strings JSON usando o Função JSON_PARSE para ter um valor SUPER. Depois, use o função get_array_length para ter o comprimento da matriz.
A função JSON_ARRAY_LENGTH retorna o número de elementos no array externo de uma string JSON. Se o argumento null_if_invalid for definido como true e a string JSON for inválida, a função retornará NULL, em vez de retornar um erro.
Para obter mais informações, consulte Funções JSON.
Sintaxe
JSON_ARRAY_LENGTH('json_array' [, null_if_invalid ] )
Argumentos
- json_array
-
Uma matriz JSON adequadamente formatada.
- null_if_invalid
-
(Opcional) Um valor
BOOLEANque especifica seNULLserá ou não retornado caso a string de entrada JSON seja inválida, em vez de retornar um erro. Para retornarNULLse JSON for inválido, especifiquetrue(t). Para retornar um erro se JSON for inválido, especifiquefalse(f). O padrão é “”.false.
Tipo de retorno
INTEGER
Exemplos
Para retornar o número de elementos na matriz, use o exemplo a seguir.
SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14]');+-------------------+ | json_array_length | +-------------------+ | 5 | +-------------------+
Para retornar um erro porque JSON é inválido, use o exemplo a seguir.
SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14');ERROR: invalid json array object [11,12,13,{"f1":21,"f2":[25,26]},14
Para definir null_if_invalid como true a fim de que a instrução retorne NULL, em vez de retornar um erro para o JSON inválido, use o exemplo a seguir.
SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14',true);+-------------------+ | json_array_length | +-------------------+ | NULL | +-------------------+