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
OBJECT_TRANSFORM-Funktion
Transformiert ein SUPER-Objekt.
Syntax
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Argumente
- input
-
Ein Ausdruck, der in ein Objekt vom Typ SUPER aufgelöst wird.
- KEEP
-
Alle in dieser Klausel angegebenen Pfad-Werte werden beibehalten und auf das Ausgabeobjekt übertragen.
Diese Klausel ist optional.
- path1, path2, ...
-
Konstante Zeichenfolgenliterale im Format von Pfadkomponenten in doppelten Anführungszeichen, die durch Punkte getrennt sind. Beispielsweise ist
'"a"."b"."c"'ein gültiger Pfad-Wert. Dies gilt für den Pfadparameter sowohl in der KEEP- als auch in der SET-Klausel. - SET
-
Pfad- und Wert-Paare, um einen bestehenden Pfad zu ändern oder einen neuen Pfad hinzuzufügen und den Wert dieses Pfads im Ausgabeobjekt festzulegen.
Diese Klausel ist optional.
- value1, value2, ...
-
Ausdrücke, die in Werte vom Typ SUPER aufgelöst werden. Beachten Sie, dass numerische, Text- und boolesche Typen in SUPER aufgelöst werden können.
Rückgabetyp
SUPER
Nutzungshinweise
OBJECT_TRANSFORM gibt ein Objekt vom Typ SUPER zurück, das die Pfadwerte aus der Eingabe enthält, die in KEEP angegeben wurden, und die Pfad-Wert-Paare, die in SET angegeben wurden.
Wenn sowohl KEEP als auch SET leer sind, gibt OBJECT_TRANSFORM Eingabe zurück.
Wenn es sich bei Eingabe nicht um ein Objekt vom Typ SUPER handelt, gibt OBJECT_TRANSFORM unabhängig von KEEP- oder SET-Werten Eingabe zurück.
Beispiel
Im folgenden Beispiel wird ein SUPER-Objekt in ein anderes SUPER-Objekt umgewandelt.
CREATE TABLE employees ( col_person SUPER ); INSERT INTO employees VALUES ( json_parse(' { "name": { "first": "John", "last": "Doe" }, "age": 25, "ssn": "111-22-3333", "company": "Company Inc.", "country": "U.S." } ') ), ( json_parse(' { "name": { "first": "Jane", "last": "Appleseed" }, "age": 34, "ssn": "444-55-7777", "company": "Organization Org.", "country": "Ukraine" } ') ) ; SELECT OBJECT_TRANSFORM( col_person KEEP '"name"."first"', '"age"', '"company"', '"country"' SET '"name"."first"', UPPER(col_person.name.first::TEXT), '"age"', col_person.age + 5, '"company"', 'Amazon' ) AS col_person_transformed FROM employees; --This result is formatted for ease of reading.col_person_transformed ------------------------------------------------------------- { "name": { "first": "JOHN" }, "age": 30, "company": "Amazon", "country": "U.S." } { "name": { "first": "JANE" }, "age": 39, "company": "Amazon", "country": "Ukraine" }