Funktion UPPER_ATTRIBUTE_NAMES - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Funktion UPPER_ATTRIBUTE_NAMES

Konvertiert alle zutreffenden Attributnamen in einem SUPER-Wert in Großbuchstaben und verwendet dabei dieselbe Umwandlungsroutine wie Die Funktion UPPER. UPPER_ATTRIBUTE_NAMES unterstützt UTF-8-Multibyte-Zeichen bis zu einer maximalen Länge von vier Bytes pro Zeichen.

Um SUPER-Attributnamen in Kleinbuchstaben umzuwandeln, verwenden Sie Funktion LOWER_ATTRIBUTE_NAMES.

Syntax

UPPER_ATTRIBUTE_NAMES(super_expression)

Argumente

super_expression

Ein SUPER-Ausdruck.

Rückgabetyp

SUPER

Beispiele

Konvertieren von SUPER-Attributnamen in Großbuchstaben

Im folgenden Beispiel werden UPPER_ATTRIBUTE_NAMES verwendet, um die Attributnamen aller SUPER-Werte in einer Tabelle zu konvertieren.

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

Beobachten Sie, wie UPPER_ATTRIBUTE_NAMES funktioniert.

  • NULL-Werte und skalare SUPER-Werte wie "a" sind unverändert.

  • In einem SUPER-Objekt werden alle Attributnamen zu Großbuchstaben geändert, Attributwerte wie z. B. "b" bleiben jedoch unverändert.

  • UPPER_ATTRIBUTE_NAMES gilt rekursiv für jedes SUPER-Objekt, das in einem SUPER-Array oder in einem anderen Objekt verschachtelt ist.

Verwendung von UPPER_ATTRIBUTE_NAMES für ein SUPER-Objekt mit doppelten Attributnamen

Wenn ein SUPER-Objekt Attribute enthält, deren Namen sich nur in ihrer Groß- und Kleinschreibung unterscheiden, gibt UPPER_ATTRIBUTE_NAMES einen Fehler aus. Betrachten Sie das folgende Beispiel.

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