共用方式為


函數多載解析 (Entity SQL)

本主題描述如何解析 Entity SQL 函式。

只要函式具有唯一的簽章,就可以使用相同的名稱來定義多個函式。

在此情況下,必須套用下列準則,以判斷指定表達式所參考的函式。 這些準則會依序套用。 僅適用於單一函式的第一個準則是已解析的函式。

  1. 參數編號。 函式在表達式中指定的參數數目相同。

  2. 類型完全相符。 函式的每個自變數類型完全符合參數類型,或為 null 常值。

  3. 在子類型上比對。 函式的每個自變數類型完全符合或為參數類型的子類型,或自變數為 Null 常值。 如果數個函式只與所需的子類型轉換數目不同,具有最小子類型轉換數目的函式就是已解析的函式。

  4. 比對子類型或類型升級。 函式的每個自變數類型完全相符、是 的子類型,或可以升階為參數類型,或自變數為 Null 常值。 同樣地,如果數個函式在子類型轉換和升階的數目中不同,具有最小子類型轉換和升級數目的函式就是解析的函式。

如果沒有這些準則導致選取單一函式,則函式調用表達式模棱兩可。

即使可以使用這些規則擷取單一函式,自變數仍可能不符合參數。 在此情況下,會引發錯誤。

對於使用者定義函式,即使模型定義函式具有與使用者定義函數較佳相符的簽章,內嵌查詢函式的定義仍優先。

另請參閱