

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# UPPER\_ATTRIBUTE\_NAMES 函式
<a name="r_upper_attribute_names"></a>

使用與 [UPPER 函數](r_UPPER.md) 相同的大小寫轉換常式，將 SUPER 值中所有適用的屬性名稱轉換為大寫。UPPER\_ATTRIBUTE\_NAMES 支援 UTF-8 多位元組字元，每個字元最多 4 個位元組。

 若要將 SUPER 屬性名稱轉換為小寫，請使用 [LOWER\_ATTRIBUTE\_NAMES 函式](r_lower_attribute_names.md)。

## 語法
<a name="r_upper_attribute_names-synopsis"></a>

```
UPPER_ATTRIBUTE_NAMES( super_expression )
```

## 引數
<a name="r_upper_attribute_names-arguments"></a>

*super\_expression*  
SUPER 表達式。

## 傳回類型
<a name="r_upper_attribute_names-return-type"></a>

`SUPER`

## 範例
<a name="r_upper_attribute_names_examples"></a>

**將 SUPER 屬性名稱轉換為大寫**  
下列範例使用 UPPER\_ATTRIBUTE\_NAMES 來轉換資料表中所有 SUPER 值的屬性名稱。

```
-- Create a table and insert several SUPER values.
CREATE TABLE t (i INT, s SUPER);

INSERT INTO t VALUES
  (1, NULL), 
  (2, 'a'::SUPER),
  (3, JSON_PARSE('{"AttributeName": "b"}')),
  (4, JSON_PARSE(
     '[{"Subobject": {"c": "c"},
        "Subarray": [{"d": "d"}, "e"]
      }]'));

-- Convert all attribute names to uppercase.
UPDATE t SET s = UPPER_ATTRIBUTE_NAMES(s);

SELECT i, s FROM t ORDER BY i;

 i |                        s
---+--------------------------------------------------
 1 | NULL
 2 | "a"
 3 | {"ATTRIBUTENAME":"B"}
 4 | [{"SUBOBJECT":{"C":"c"},"SUBARRAY":[{"D":"d"}, "e"]}]
```

請注意 UPPER\_ATTRIBUTE\_NAMES 的運作方式。
+  NULL 值和純量 SUPER 值 (例如 `"a"`) 會保持不變。
+  在 SUPER 物件中，所有屬性名稱都會變更為大寫，但屬性值 (例如 `"b"`) 則保持不變。
+  UPPER\_ATTRIBUTE\_NAMES 會反覆套用至 SUPER 陣列內或其他物件內的任何巢狀 SUPER 物件。

**對擁有重複屬性名稱的 SUPER 物件使用 UPPER\_ATTRIBUTE\_NAMES**  
如果 SUPER 物件包含的屬性名稱只有大小寫不同，UPPER\_ATTRIBUTE\_NAMES 將會引發錯誤。請考量下列範例。

```
SELECT UPPER_ATTRIBUTE_NAMES(JSON_PARSE('{"A": "A", "a": "a"}'));      

error:   Invalid input
code:    8001
context: SUPER value has duplicate attributes after case conversion.
```