

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonction OBJECT\$1TRANSFORM
<a name="r_object_transform_function"></a>

Transforme un objet SUPER.

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

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

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

*input*  
Expression qui se résout en un objet de type SUPER.

*KEEP*  
Toutes les valeurs de *chemin* spécifiées dans cette clause sont conservées et transférées vers l’objet de sortie.  
Cette clause est facultative.

*path1*, *path2*, ...  
Litéraux de chaîne constants, au format de composants de chemin entre guillemets doubles délimités par des points. Par exemple, `'"a"."b"."c"'` est une valeur de chemin valide. Ceci s’applique au paramètre path dans les clauses KEEP et SET.

*SET*  
paires *path* et *value* permettant de modifier un chemin existant ou d’ajouter un nouveau chemin, et définir la valeur de celui-ci dans l’objet de sortie.  
Cette clause est facultative.

*value1*, *value2*, ...  
Expressions qui se résolvent en valeurs de type SUPER. Notez que les types numeric, text et boolean peuvent être résolus en SUPER.

## Type de retour
<a name="r_object_transform_function-returns"></a>

`SUPER`

## Notes d’utilisation
<a name="r_object_transform_function-usage-notes"></a>

OBJECT\$1TRANSFORM renvoie un objet de type SUPER contenant les valeurs de chemin provenant de *input* spécifiées dans KEEP et les paires *path* *value* spécifiées dans SET. 

Si KEEP et SET sont vides, OBJECT\$1TRANSFORM renvoie *input*.

Si *input* n’est pas un objet (*object*) de type SUPER, OBJECT\$1TRANSFORM renvoie *input*, quelles que soient les valeurs KEEP ou SET.

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

L’exemple suivant transforme un objet SUPER en un autre objet 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"
}
```