Python UDF 資料類型 - Amazon Redshift

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

Python UDF 資料類型

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

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

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

Amazon Redshift 資料類型 Python 資料類型

smallint

integer

bigint

short

長整數

int

decimal 或 numeric

decimal

double

real

float

布林值

bool

char

varchar

string

timestamp

datetime

ANYELEMENT 資料類型

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

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

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