

 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-creating-a-scalar-udf"></a>

純量 Python UDF 包含呼叫函數時執行的 Python 程式，並傳回單一值。[CREATE FUNCTION](r_CREATE_FUNCTION.md) 命令定義下列參數：
+ (選用) 輸入引數。每個引數必須具有一個名稱和一個資料類型。
+ 一個傳回資料類型。
+ 一個可執行的 Python 程式。

Python UDF 的輸入和傳回資料類型可以是下列任一類型：
+  SMALLINT 
+  INTEGER 
+  BIGINT 
+  DECIMAL 
+  REAL 
+  DOUBLE PRECISION 
+  BOOLEAN 
+  CHAR 
+  VARCHAR 
+  DATE 
+  TIMESTAMP 
+  ANYELEMENT 

這些類型的別名也有效。如需資料類型及其別名的完整清單，請參閱 [資料類型](c_Supported_data_types.md)。

當 Python UDF 使用資料類型 ANYELEMENT 時，Amazon Redshift 會根據執行時期提供的引數，自動將其轉換為標準資料類型。如需詳細資訊，請參閱[ANYELEMENT 資料類型](udf-data-types.md#udf-anyelement-data-type)。

當 Amazon Redshift 查詢呼叫純量 UDF 時，下列步驟會在執行期發生。

1. 函數會將輸入引數轉換為 Python 資料類型。

   如需將 Amazon Redshift 資料類型映射至 Python 資料類型，請參閱 [Python UDF 資料類型](udf-data-types.md)。

1. 函數會執行 Python 程式，剖析已轉換的輸入引數。

1. Python 程式碼會傳回單一值。傳回值的資料類型必須對應至函數定義所指定的 RETURNS 資料類型。

1. 函數會將 Python 傳回值轉換為指定的 Amazon Redshift 資料類型，然後將該值傳回至佇列。

**注意**  
Python 3 不適用於 Python UDF。若要取得 Amazon Redshift UDF 的 Python 3 支援，請改用 [純量 Lambda UDF](udf-creating-a-lambda-sql-udf.md)。