

 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*  
이 절에 지정된 모든 **경로 값이 유지되고 출력 객체로 전달됩니다.  
이 절은 선택 사항입니다.

**path1, **path2, ...  
마침표로 구분되고 큰따옴표로 묶인 경로 구성 요소 형식의 상수 문자열 리터럴입니다. 예를 들어, `'"a"."b"."c"'`는 유효한 경로 값입니다. 이는 KEEP 절과 SET 절의 경로 파라미터에 적용됩니다.

*SET*  
**경로와 **값 쌍을 사용하여 기존 경로를 수정하거나 새 경로를 추가하고 출력 객체에 해당 경로의 값을 설정합니다.  
이 절은 선택 사항입니다.

**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에 지정된 **입력의 경로 값과 SET에 지정된 **경로 및 **값 쌍을 포함하는 SUPER 유형 객체를 반환합니다.

KEEP과 SET가 모두 비어 있는 경우 OBJECT\$1TRANSFORM은 **입력을 반환합니다.

**입력이 SUPER 유형 **객체가 아닌 경우 OBJECT\$1TRANSFORM은 KEEP 또는 SET 값과 관계없이 **입력을 반환합니다.

## 예제
<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"
}
```