

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

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

SUPER オブジェクトを変換します。

## 構文
<a name="r_object_transform_function-synopsis"></a>

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

## 引数
<a name="r_object_transform_function-arguments"></a>

* の入力*:  
SUPER 型オブジェクトに解決される式。

*KEEP*  
この句で指定された *path* 値はすべて保持され、出力オブジェクトに引き継がれます。  
この句はオプションです。

*path1*, *path2*, ...  
二重引用符で囲まれたパスコンポーネントをピリオドで区切った形式の定数文字列リテラル。例えば、`'"a"."b"."c"'` は有効なパス値です。これは KEEP 句と SET 句の両方のパスパラメーターに当てはまります。

*SET*  
*path* と *value* のペアを使用して既存のパスを変更するか、新しいパスを追加し、出力オブジェクトにそのパスの値を設定します。  
この句はオプションです。

*value1*, *value2*, ...  
SUPER 型の値に解決される式。数値型、テキスト型、ブール型は SUPER に解決可能であることに注意してください。

## 戻り型
<a name="r_object_transform_function-returns"></a>

`SUPER`

## 使用に関する注意事項
<a name="r_object_transform_function-usage-notes"></a>

OBJECT\$1TRANSFORM は、KEEP で指定された *input* からのパス値と、SET で指定された *path* と *value* のペアを含む SUPER 型のオブジェクトを返します。

KEEP と SET の両方が空の場合、OBJECT\$1TRANSFORM は *input* を返します。

*input* が SUPER 型の *object* でない場合、OBJECT\$1TRANSFORM は KEEP 値や SET 値に関係なく *input* を返します。

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

次の例では、SUPER オブジェクトを別の 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"
}
```