

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonction LOWER\$1ATTRIBUTE\$1NAMES
<a name="r_lower_attribute_names"></a>

Convertit tous les noms d’attributs applicables dans une valeur SUPER en minuscules, en utilisant la même routine de conversion majuscules/minuscules que [Fonction LOWER](r_LOWER.md). LOWER\$1ATTRIBUTE\$1NAMES prend en charge les caractères à plusieurs octets UTF-8, à concurrence de quatre octets au maximum par caractère. 

 Pour convertir les noms d’attributs SUPER en majuscules, utilisez [Fonction UPPER\$1ATTRIBUTE\$1NAMES](r_upper_attribute_names.md). 

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

```
LOWER_ATTRIBUTE_NAMES( super_expression )
```

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

*super\$1expression*  
Une expression SUPER.

## Type de retour
<a name="r_lower_attribute_names-return-type"></a>

`SUPER`

## Notes d’utilisation
<a name="r_lower_attribute_names-usage-notes"></a>

Dans Amazon Redshift, les identifiants de colonne ne font généralement pas la distinction entre majuscules et minuscules et sont convertis en minuscules. Si vous ingérez des données provenant de formats de données sensibles à la casse, tels que JSON, les données peuvent contenir des noms d’attributs composés de majuscules et de minuscules.

Prenez l’exemple de code suivant.

```
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 renvoie la valeur NULL pour les deux requêtes. Pour interroger `AttributeName`, utilisez LOWER\$1ATTRIBUTE\$1NAMES pour convertir les noms des attributs des données en minuscules. Prenez l’exemple de code suivant.

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

L’option de configuration `enable_case_sensitive_super_attribute` est une option connexe pour travailler avec des noms d’attributs d’objets en majuscules et minuscules. Elle permet à Amazon Redshift de reconnaître les majuscules dans les noms d’attributs SUPER. Cela peut être une solution alternative à l’utilisation de LOWER\$1ATTRIBUTE\$1NAMES. Pour plus d’informations sur `enable_case_sensitive_super_attribute`, consultez [enable\$1case\$1sensitive\$1super\$1attribute](r_enable_case_sensitive_super_attribute.md).

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

**Conversion des noms d’attributs SUPER en minuscules**  
L’exemple suivant utilise LOWER\$1ATTRIBUTE\$1NAMES pour convertir les noms d’attribut de toutes les valeurs SUPER d’une table.

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

Observez le fonctionnement de LOWER\$1ATTRIBUTE\$1NAMES.
+  Les valeurs NULL et les valeurs scalaires SUPER telles que `"A"` restent inchangées. 
+  Dans un objet SUPER, tous les noms d’attributs sont remplacés par des minuscules, mais les valeurs d’attributs tels que `"B"` restent inchangés. 
+  LOWER\$1ATTRIBUTE\$1NAMES s’applique de manière récursive à tout objet SUPER imbriqué dans un tableau SUPER ou dans un autre objet. 

**Utilisation de LOWER\$1ATTRIBUTE\$1NAMES sur un objet SUPER avec des noms d’attributs dupliqués**  
Si un objet SUPER contient des attributs dont les noms ne diffèrent que dans leur cas, LOWER\$1ATTRIBUTE\$1NAMES générera une erreur. Prenez l’exemple de code suivant.

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

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