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.