

 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](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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\$1TRANSFORM
<a name="r_object_transform_function"></a>

Trasforma un oggetto SUPER.

## Sintassi
<a name="r_object_transform_function-synopsis"></a>

```
OBJECT_TRANSFORM(
  input
  [KEEP path1, ...]
  [SET
    path1, value1,
    ...,  ...
  ]
)
```

## Arguments (Argomenti)
<a name="r_object_transform_function-arguments"></a>

*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
<a name="r_object_transform_function-returns"></a>

`SUPER`

## Note per l’utilizzo
<a name="r_object_transform_function-usage-notes"></a>

OBJECT\$1TRANSFORM 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\$1TRANSFORM restituisce l'*input*.

Se l'*input* non è un *oggetto* di tipo SUPER, OBJECT\$1TRANSFORM restituisce l'*input*, indipendentemente dai valori KEEP o SET.

## Esempio
<a name="r_object_transform_function-example"></a>

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