共用方式為


語法 (SSIS)

Integration Services 運算式語法與 C 和 C# 語言使用的語法類似。運算式的元素包括識別碼 (資料行和變數)、常值、運算子以及函數。本主題摘要說明運算式評估工具語法套用至不同運算式元素時的獨特需求。

如需使用特定運算子及函數的範例運算式,請參閱下列主題中每個運算子及函數的相關主題:<運算子 (SSIS 運算式)>及<字串函數和其他函數 (SSIS 運算式)>。

如需使用多個運算子、函數以及識別碼和常值的範例運算式,請參閱<進階 Integration Services 運算式>。

如需屬性運算式中使用的範例運算式,請參閱<在封裝中使用屬性運算式>。

在一些情況下,Integration Services 會將 4000 個字元限制加諸於運算式的長度上。如果運算式的評估結果具有 Integration Services 資料類型 DT_WSTR 或 DT_STR,則會將運算式在 4000 個字元處截斷。如果子運算式的結果類型為 DT_STR 或 DT_WSTR,則同樣會將子運算式截斷到 4000 個字元,不論整體運算式的結果類型為何。

視發生截斷的 Integration Services 元件而定,截斷會以不同的方式進行處理。

  • 在「衍生的資料行」和「條件式分割」等的轉換中,截斷會藉由設定轉換以忽略截斷或使用錯誤輸出重新導向發生截斷的資料列給不同的輸出,來進行正常處理。

  • 在執行階段,用於設定屬性運算式、變數以及優先順序條件約束之值的運算式截斷是一個錯誤,並可能導致封裝失敗。

  • 在設計階段,字串常值的截斷如果發生在管線中則會產生警告,如果發生在執行階段則會產生錯誤。

識別碼

運算式可以包括資料行和變數識別碼。資料行可在資料來源中產生,或在資料流程中藉由轉換建立。運算式可以使用歷程識別碼來參考資料行。歷程識別碼是用來識別封裝元素的唯一號碼。運算式中參考的歷程識別碼必須包括井字號 (#) 前置詞。例如,歷程識別碼 138 是使用 #138 參考。

運算式可包括 SSIS 提供的系統變數和自訂變數。在運算式中參考變數時,必須包括 @ 前置詞。例如,Counter 變數是使用 @Counter 參考的。@ 字元並非變數名稱的一部分;該字元僅用來表示識別碼為運算式評估工具的變數。如需詳細資訊,請參閱<識別碼 (SSIS)>。

常值

運算式可以包含數值、字串及布林常值。運算式中使用的字串常值必須加上引號。數值和布林常值則不使用引號。運算式語言包括常逸出之字元的逸出序列。如需詳細資訊,請參閱<常值 (SSIS)>。

運算子

運算式評估工具包含一組運算子,提供與 Transact-SQL、C++ 和 C# 語言中運算子類似的功能。不過,運算式語言還包括額外的運算子,並且使用您可能不熟悉的不同符號。如需詳細資訊,請參閱<運算子 (SSIS 運算式)>。

命名空間解析運算子

運算式使用命名空間解析運算子 (::) 使相同名稱的變數意義明確。藉由使用命名空間解析運算子,您可以利用變數的命名空間限定變數,如此即可在封裝中使用多個相同名稱的變數。

轉換運算子

轉換運算子會將運算式結果、資料行值、變數值以及常數從一種資料類型轉換為另一種。運算式語言提供的轉換運算子與 C 和 C# 語言提供的轉換運算子類似。在 Transact-SQL 中,CAST 和 CONVERT 函數即提供此功能。轉換運算子的語法與 CAST 和 CONVERT 所使用的語法不同之處如下:

  • 它可使用運算式作為引數。

  • 其語法不包括 CAST 關鍵字。

  • 其語法不包括 AS 關鍵字。

條件運算子

條件運算子會根據布林運算式的評估,傳回兩種運算式的其中一種。運算式語言提供的條件運算子與 C 和 C# 語言提供的條件運算子類似。在多維度運算式 (MDX) 中,IIF 函數即提供類似的功能。

邏輯運算子

運算式語言支援邏輯 NOT 運算子所使用的 ! 字元。在 Transact-SQL 中,! 運算子內建於一組關係運算子內。例如,Transact-SQL 提供 > 和 !> 運算子。SSIS 運算式語言不支援 ! 運算子和其他運算子的組合。例如,將 ! 和 > 結合至 !> 則無效。不過,針對不等於 (not-equal-to) 比較,運算式語言支援內建的 != 字元組合。

相等運算子

運算式評估工具文法描述提供 == 相等運算子。此運算子相當於 Transact-SQL 中的 = 運算子以及 C# 中的 == 運算子。

函數

運算式語言包括與 Transact-SQL 函數和 C# 方法類似的日期和時間函數、數學函數以及字串函數。

其中有少數函數的名稱與 Transact-SQL 函數相同,但是在運算式評估工具中其功能則稍有不同。

  • 在 Transact-SQL 中,ISNULL 函數會以指定的值取代 Null 值,而運算式評估工具 ISNULL 函數則根據運算式是否為 Null 傳回布林。

  • 在 Transact-SQL 中,ROUND 函數包括截斷結果集的選項,而運算式評估工具 ROUND 函數則沒有。

如需詳細資訊,請參閱<字串函數和其他函數 (SSIS 運算式)>。

外部資源

請參閱

其他資源