Fonction UPPER_ATTRIBUTE_NAMES - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Fonction UPPER_ATTRIBUTE_NAMES

Convertit tous les noms d’attributs applicables dans une valeur SUPER en majuscules, en utilisant la même routine de conversion majuscules/minuscules que Fonction UPPER. UPPER_ATTRIBUTE_NAMES 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 minuscules, utilisez Fonction LOWER_ATTRIBUTE_NAMES.

Syntaxe

UPPER_ATTRIBUTE_NAMES(super_expression)

Arguments

super_expression

Une expression SUPER.

Type de retour

SUPER

Exemples

Conversion des noms d’attributs SUPER en majuscules

L’exemple suivant utilise UPPER_ATTRIBUTE_NAMES 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 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"]}]

Observez le fonctionnement de UPPER_ATTRIBUTE_NAMES.

  • 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 majuscules, mais les valeurs d’attributs tels que "b" restent inchangés.

  • UPPER_ATTRIBUTE_NAMES s’applique de manière récursive à tout objet SUPER imbriqué dans un tableau SUPER ou dans un autre objet.

Utilisation de UPPER_ATTRIBUTE_NAMES 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, UPPER_ATTRIBUTE_NAMES générera une erreur. Prenez l’exemple de code suivant.

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