Funzione OBJECT_TRANSFORM - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. 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" }