Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione OBJECT_TRANSFORM
Trasforma un oggetto SUPER.
Sintassi
OBJECT_TRANSFORM( input [KEEP path1, ...] [SET path1, value1, ..., ... ] )
Arguments (Argomenti)
- input
-
Un'espressione che restituisce un oggetto di tipo SUPER.
- KEEP
-
Tutti i valori path specificati in questa clausola vengono mantenuti e passati all'oggetto di output.
Questa clausola è facoltativa.
- path1, path2, ...
-
Valori letterali di stringa costanti, nel formato di componenti del percorso tra virgolette doppie delimitate da punti. Ad esempio,
'"a"."b"."c"'è un valore di percorso valido. Questo vale per il parametro path in entrambe le clausole KEEP e SET. - SET
-
Coppie di path e value per modificare un percorso esistente o aggiungerne uno nuovo e impostare il valore del percorso nell'oggetto di output.
Questa clausola è facoltativa.
- value1, value2, ...
-
Espressioni che restituiscono valori di tipo SUPER. Tieni presente che i tipi numerico, testo e booleano restituiscono valori SUPER.
Tipo restituito
SUPER
Note per l'utilizzo
OBJECT_TRANSFORM restituisce un oggetto di tipo SUPER contenente i valori del percorso dell'input specificati in KEEP e le coppie di path e value specificate in SET.
Se sia KEEP che SET sono vuoti, OBJECT_TRANSFORM restituisce l'input.
Se l'input non è un oggetto di tipo SUPER, OBJECT_TRANSFORM restituisce l'input, indipendentemente dai valori KEEP o SET.
Esempio
L'esempio seguente trasforma un oggetto SUPER in un altro oggetto SUPER.
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" }