

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função LOWER\_ATTRIBUTE\_NAMES
<a name="r_lower_attribute_names"></a>

Converte todos os nomes de atributos aplicáveis em um valor SUPER em minúsculas, usando a mesma rotina de conversão de maiúsculas e minúsculas de [Função LOWER](r_LOWER.md). LOWER\_ATTRIBUTE\_NAMES aceita caracteres UTF-8 multibyte, até o máximo de quatro bytes por caractere. 

 Para converter nomes de atributos SUPER em maiúsculas, use [Função UPPER\_ATTRIBUTE\_NAMES](r_upper_attribute_names.md). 

## Sintaxe
<a name="r_lower_attribute_names-synopsis"></a>

```
LOWER_ATTRIBUTE_NAMES( super_expression )
```

## Argumentos
<a name="r_lower_attribute_names-arguments"></a>

*super\_expression*  
Uma expressão SUPER.

## Tipo de retorno
<a name="r_lower_attribute_names-return-type"></a>

`SUPER`

## Observações de uso
<a name="r_lower_attribute_names-usage-notes"></a>

No Amazon Redshift, os identificadores de coluna tradicionalmente não diferenciam maiúsculas de minúsculas e são convertidos em minúsculas. Se você ingerir dados de formatos de dados que diferenciam maiúsculas e minúsculas, como JSON, os dados poderão conter nomes de atributos com maiúsculas e minúsculas.

Considere o exemplo a seguir.

```
CREATE TABLE t1 (s) AS SELECT JSON_PARSE('{"AttributeName": "Value"}');


SELECT s.AttributeName FROM t1;  

attributename
-------------
NULL


SELECT s."AttributeName" FROM t1;

attributename
-------------
NULL
```

O Amazon Redshift exibe NULL para as duas consultas. Para consultar `AttributeName`, use LOWER\_ATTRIBUTE\_NAMES para converter os nomes dos atributos dos dados em minúsculas. Considere o exemplo a seguir.

```
CREATE TABLE t2 (s) AS SELECT LOWER_ATTRIBUTE_NAMES(s) FROM t1;


SELECT s.attributename FROM t2;

attributename
-------------
"Value"


SELECT s.AttributeName FROM t2; 

attributename
-------------
"Value"


SELECT s."attributename" FROM t2;

attributename
-------------
"Value"


SELECT s."AttributeName" FROM t2;

attributename
-------------
"Value"
```

Uma opção relacionada para trabalhar com nomes de atributos de objetos com maiúsculas e minúsculas é a opção de configuração `enable_case_sensitive_super_attribute`, que permite ao Amazon Redshift reconhecer maiúsculas e minúsculas em nomes de atributos SUPER. Essa pode ser uma solução alternativa ao uso de LOWER\_ATTRIBUTE\_NAMES. Para ter mais informações sobre `enable_case_sensitive_super_attribute`, acesse [enable\_case\_sensitive\_super\_attribute](r_enable_case_sensitive_super_attribute.md).

## Exemplos
<a name="r_lower_attribute_names_examples"></a>

**Converter nomes de atributos SUPER em minúsculas**  
O exemplo a seguir usa LOWER\_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 lowercase.
UPDATE t SET s = LOWER_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 LOWER\_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 minúsculas, mas valores de atributos como `"B"` permanecem inalterados. 
+  LOWER\_ATTRIBUTE\_NAMES aplica-se recursivamente a qualquer objeto SUPER aninhado dentro de uma matriz SUPER ou dentro de outro objeto. 

**Usar LOWER\_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, LOWER\_ATTRIBUTE\_NAMES gerará um erro. Considere o exemplo a seguir.

```
SELECT LOWER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}'));      

error:   Invalid input
code:    8001
context: SUPER value has duplicate attributes after case conversion.
```