Função UPPER_ATTRIBUTE_NAMES - Amazon Redshift

Função UPPER_ATTRIBUTE_NAMES

Converte todos os nomes de atributos aplicáveis em um valor SUPER em maiúsculas, usando a mesma rotina de conversão de maiúsculas e minúsculas de Função UPPER. UPPER_ATTRIBUTE_NAMES é compatível com caracteres UTF-8 multibyte, até o máximo de quatro bytes por caractere.

Para converter nomes de atributos SUPER em minúsculas, use Função LOWER_ATTRIBUTE_NAMES.

Sintaxe

UPPER_ATTRIBUTE_NAMES(super_expression)

Argumentos

super_expression

Uma expressão SUPER.

Tipo de retorno

SUPER

Exemplos

Converter nomes de atributos SUPER em maiúsculas

O exemplo a seguir usa UPPER_ATTRIBUTE_NAMES para converter os nomes dos atributos de todos os valores SUPER em uma tabela.

-- Create a table and insert several SUPER values. CREATE TABLE t (i INT, s SUPER); INSERT INTO t VALUES (1, NULL), (2, 'a'::SUPER), (3, JSON_PARSE('{"AttributeName": "b"}')), (4, JSON_PARSE( '[{"Subobject": {"c": "c"}, "Subarray": [{"d": "d"}, "e"] }]')); -- Convert all attribute names to uppercase. UPDATE t SET s = UPPER_ATTRIBUTE_NAMES(s); SELECT i, s FROM t ORDER BY i; i | s ---+-------------------------------------------------- 1 | NULL 2 | "a" 3 | {"ATTRIBUTENAME":"B"} 4 | [{"SUBOBJECT":{"C":"c"},"SUBARRAY":[{"D":"d"}, "e"]}]

Observe como UPPER_ATTRIBUTE_NAMES funciona.

  • Valores NULL e valores SUPER escalares, como "a", permanecem inalterados.

  • Em um objeto SUPER, todos os nomes de atributos são alterados para maiúsculas, mas valores de atributos como "b" permanecem inalterados.

  • UPPER_ATTRIBUTE_NAMES aplica-se recursivamente a qualquer objeto SUPER aninhado dentro de uma matriz SUPER ou dentro de outro objeto.

Usar UPPER_ATTRIBUTE_NAMES em um objeto SUPER com nomes de atributos duplicados

Se um objeto SUPER contiver atributos cujos nomes sejam diferentes apenas em termos de maiúsculas e minúsculas, UPPER_ATTRIBUTE_NAMES gerará um erro. Considere o seguinte exemplo.

SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}')); error: Invalid input code: 8001 context: SUPER value has duplicate attributes after case conversion.