

 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/)。

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

# Python UDF 資料類型
<a name="udf-data-types"></a>

Python UDF 可對輸入引數和函數的傳回值使用任何標準 Amazon Redshift 資料類型。除了標準資料類型外，UDF 還支援資料類型 *ANYELEMENT*，而 Amazon Redshift 會根據執行期提供的引數自動將其轉換為標準資料類型。純量 UDF 可以傳回資料類型 ANYELEMENT。如需詳細資訊，請參閱[ANYELEMENT 資料類型](#udf-anyelement-data-type)。

在執行期間，Amazon Redshift 會將引數從 Amazon Redshift 資料類型轉換為 Python 資料類型以進行處理。然後，它將傳回值從 Python 資料類型轉換為對應的 Amazon Redshift 資料類型。如需 Amazon Redshift 資料類型的相關資訊，請參閱[資料類型](c_Supported_data_types.md)。

下表將 Amazon Redshift 資料類型映射至 Python 資料類型。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/redshift/latest/dg/udf-data-types.html)

## ANYELEMENT 資料類型
<a name="udf-anyelement-data-type"></a>

ANYELEMENT 是*多型資料類型*。這表示，若對引數的資料類型使用 ANYELEMENT 來宣告函數，則函數可以接受任何標準 Amazon Redshift 資料類型，做為呼叫函數時該引數的輸入。ANYELEMENT 引數會設為呼叫函數時實際傳遞至其中的資料類型。

如果函數使用多個 ANYELEMENT 資料類型，則在呼叫函數時，它們必須全都解析為相同的實際資料類型。所有 ANYELEMENT 引數資料類型都會設為傳遞至 ANYELEMENT 之第一個引數的實際資料類型。例如，宣告為 `f_equal(anyelement, anyelement)` 的函數將採用任何兩個輸入值，只要它們是相同的資料類型。

如果函數的輸入值宣告為 ANYELEMENT，則至少一個輸入引數必須是 ANYELEMENT。傳回值的實際資料類型將與提供給 ANYELEMENT 輸入引數的實際資料類型相同。