

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Función LOWER\$1ATTRIBUTE\$1NAMES
<a name="r_lower_attribute_names"></a>

Convierte todos los nombres de atributos aplicables de un valor SUPER a minúsculas, con la misma rutina de conversión de mayúsculas y minúsculas que [Función LOWER](r_LOWER.md). LOWER\$1ATTRIBUTE\$1NAMES admite caracteres multibyte UTF-8 de hasta un máximo de cuatro bytes por carácter. 

 Para convertir los nombres del atributo SUPER a mayúsculas, use [Función UPPER\$1ATTRIBUTE\$1NAMES](r_upper_attribute_names.md). 

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

```
LOWER_ATTRIBUTE_NAMES( super_expression )
```

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

*super\$1expression*  
Una expresión SUPER.

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

`SUPER`

## Notas de uso
<a name="r_lower_attribute_names-usage-notes"></a>

En Amazon Redshift, los identificadores de columna tradicionalmente no distinguen entre mayúsculas y minúsculas y se convierten a minúsculas. Si ingiere datos de formatos de datos que distinguen mayúsculas de minúsculas, como JSON, es posible que los datos contengan nombres de atributos con mayúsculas y minúsculas.

Considere el siguiente ejemplo.

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


SELECT s.AttributeName FROM t1;  

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


SELECT s."AttributeName" FROM t1;

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

Amazon Redshift devuelve un valor NULL para ambas consultas. Para realizar consultas de `AttributeName`, utilice LOWER\$1ATTRIBUTE\$1NAMES para convertir los nombres de los atributos de los datos a minúsculas. Considere el siguiente ejemplo.

```
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"
```

Una opción relacionada para trabajar con nombres de atributos de objetos en mayúsculas y minúsculas es la opción de configuración `enable_case_sensitive_super_attribute`, que permite a Amazon Redshift reconocer mayúsculas y minúsculas en los nombres de atributo SUPER. Esta puede ser una solución alternativa al uso de LOWER\$1ATTRIBUTE\$1NAMES. Para obtener más información sobre `enable_case_sensitive_super_attribute`, diríjase a [enable\$1case\$1sensitive\$1super\$1attribute](r_enable_case_sensitive_super_attribute.md).

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

**Conversión de los nombres de los atributos SUPER a minúsculas**  
En el siguiente ejemplo, se utiliza LOWER\$1ATTRIBUTE\$1NAMES para convertir los nombres de los atributos de todos los valores SUPER de una tabla.

```
-- 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 cómo funciona LOWER\$1ATTRIBUTE\$1NAMES.
+  Los valores NULL y los valores escalares SUPER como `"A"` permanecen inalterados. 
+  En un objeto SUPER, todos los nombres de los atributos se cambian a minúsculas, pero los valores de los atributos, como `"B"`, permanecen inalterados. 
+  LOWER\$1ATTRIBUTE\$1NAMES se aplica de forma recursiva a cualquier objeto SUPER que esté anidado dentro de una matriz SUPER o dentro de otro objeto. 

**Uso de LOWER\$1ATTRIBUTE\$1NAMES en un objeto SUPER con nombres de atributos duplicados**  
Si un objeto SUPER contiene atributos cuyos nombres solo difieren en las mayúsculas y minúsculas, LOWER\$1ATTRIBUTE\$1NAMES generará un error. Considere el siguiente ejemplo.

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

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