共用方式為


語法 (SSIS)

Integration Services 運算式語法類似於 C 和 C# 語言所使用的語法。 表達式包括識別符(欄位和變數)、常值、運算符和函式等元素。 本主題摘要說明表達式評估工具語法套用至不同表達式元素的唯一需求。

備註

在舊版 Integration Services 中,當結果具有 Integration Services 數據類型DT_WSTR或DT_STR時,表達式的評估結果會有 4000 個字符的限制。 已移除此限制。

如需使用特定運算符和函式的範例表達式,請參閱主題中的每個運算元和函式主題:運算元(SSIS 表達式)函數(SSIS 表達式)。

如需使用多個運算符和函式以及標識符和常值之範例表示式,請參閱 進階 Integration Services 表達式的範例

如需屬性表達式中使用的範例表達式,請參閱 在封裝中使用屬性表達式

識別碼

表達式可以包含數據行和變數標識碼。 數據行可以源自數據源,也可以透過數據流中的轉換來建立。 表達式可以使用歷程標識碼來參考欄位。 譜系標識碼是可唯一識別封裝元素的數位。 表達式中參考的譜系標識碼必須包含磅 (#) 前置詞。 例如,使用 #138 參考譜系標識碼 138。

表達式可以包含 SSIS 所提供的系統變數和自訂變數。 在表達式中參考的變數必須包含 @ 前置詞。 例如,Counter 變數以 @Counter 被引用。 @ 字元不是變數名稱的一部分;它只會向表達式評估工具指出標識碼是變數。 如需詳細資訊,請參閱標識碼(SSIS)。

字面意義

表達式可以包含數值、字串和布爾常值。 表達式中使用的字串常值必須以引號括住。 數值和布爾常值不會採用引號。 表達式語言包含經常逸出之字元的逸出序列。 如需詳細資訊,請參閱 常值 (SSIS)

運營商

表達式評估工具提供一組運算符,提供類似 Transact-SQL、C++ 和 C# 等語言之運算符集合的功能。 不過,表達式語言包含其他運算符,並使用與您可能熟悉的符號不同的符號。 如需詳細資訊,請參閱運算元(SSIS 表達式)。

命名空間解析運算元

表達式會使用命名空間解析運算符 (::) 來釐清具有相同名稱的變數。 藉由使用命名空間解析運算符,您可以使用其命名空間來限定變數,這可讓您在封裝中使用多個具有相同名稱的變數。

轉換運算元

轉換運算子會將表達式結果、數據行值、變數值和常數從某個數據類型轉換成另一個數據類型。 表達式語言所提供的轉換運算符類似於 C 和 C# 語言所提供的轉換運算元。 在 Transact-SQL 中,CAST 和 CONVERT 函式會提供這項功能。 cast 運算子的語法與 CAST 和 CONVERT 所使用的語法不同:

  • 它可以使用表達式作為參數。

  • 其語法不包含 CAST 關鍵詞。

  • 其語法不包含 AS 關鍵詞。

條件運算元

條件運算符會根據布爾表達式的評估,傳回兩個表達式的其中一個。 表達式語言所提供的條件運算符類似於 C 和 C# 語言所提供的條件運算元。 在多維度表達式中,IIF 函式會提供類似的功能。

邏輯運算子

表達式語言支援驚嘆號。 邏輯 NOT 運算符的字元。 在 Transact-SQL 中,! 運算子內建於關係運算元集合中。 例如,Transact-SQL 提供 > 和 !> 運算符。 SSIS 運算式語言不支援 "!" 的組合! 運算元和其他操作符。 例如,這樣的合併是無效的! 並將 > 轉換成 >。 不過,表達式語言支援用於不等於比較的內建「!=」字元組合。

相等運算子

表達式求值語法提供 == 相等運算符。 這個運算子相當於 Transact-SQL 中的 = 運算子,以及 C# 中的 == 運算子。

功能

表達式語言包含日期和時間函式、數學函式和類似 Transact-SQL 函式和 C# 方法的字串函式。

一些函式的名稱與 Transact-SQL 函式相同,但在表達式評估工具中具有巧妙的不同功能。

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

  • 在 Transact-SQL 中,ROUND 函式包含截斷結果集的選項,而表達式評估工具 ROUND 函式則不會。

如需詳細資訊,請參閱 函式 (SSIS 運算式)

在數據流元件中使用表達式