共用方式為


常量(SSIS)

表達式可以包含數值、字串和布爾常值。 表達式評估工具支援各種數值常值,例如整數、小數點和浮點常數。 運算式評估器也支援 long 和 float 型別後綴,指定評估器如何處理這些數值,以及在數值常數中使用科學記數法。

數值常量

表達式評估工具支援整數和非整數數值數據類型。 它也支援歷程標識碼,這是封裝專案的唯一數值標識符。 譜系標識碼是數位,但不能用於數學運算。

表達式評估工具支援後綴字元,可以用來指示表達式評估工具如何處理數值常值。 例如,您可以藉由寫入 37L 或 37l 來指出整數 37 視為長整數數據類型。

下表列出數字字面值的後綴。

後綴 說明
L 或 l 數字常值。
U 或 u 不帶正負號的數字字面值。
E 或 e 科學表示法的指數

下表列出數值表示式元素及其正則表示式。

運算式元素 規則運算式 說明
以 D 表示的數位。 [0-9] 任何數字。
以 E 表示的科學表示法。 [Ee][+-]?{D}+ 大寫或小寫的 e,選擇性地加上 + 或 -,以及 D 中所定義的一位或多位數字。
以 IS 表示的整數後綴。 (([lL]?[uU]?)|([uU]?[lL]?)) 選擇性地使用大寫或小寫的 u 和 l 或其組合。 U 或 u 表示不帶正負號的值。 L 或 l 表示 long 型別的值。
以 FS 表示的浮點數後綴。 ([f|F]|[l|L]) 大寫或小寫 f 或 l。 F 或 f 表示浮點數(DT_R4數據類型)。 L 或 l 表示長值(DT_R8數據類型)。
以 H 表示的十六進位數位。 [a-fA-F0-9] 任何十六進位數位。

下表描述使用正則表達式語言的有效數字字面值。

規則運算式 說明
{D}+{IS} 具備至少一個數字 (D) 的整數數值常值,並可選擇性地包含長整數和/或無符號後綴 (IS)。 範例:457、785u、986L 和 7945ul。
{D}+{E}{FS} 非整數數字常數,具有至少一個數位(D)、科學表示法以及Long或Float後綴。 範例:4E8l、13e-2f 和 5E+L。
{D}*“.”{D}+{E}?{FS} 具有小數部分的非整數數值文字常量、至少一位數的小數部分(D)、可選指數(E),以及一個浮點型或長整型識別符(FS)。 這個數值字面常數具有 DT_R4 或 DT_R8 資料類型。 範例:6.45E3f、.89E-2l 和 1.05E+7F。
{D}+“。{D}*{E}?{FS} 具有至少一個有效位數(D)、小數點、指數(E)以及一個浮點或一個長整數標識符的非整數字面值(FS)。 這個數值常值具有DT_R4或DT_R8數據類型。 範例:1.E-4f、4.6E6L 和 8.365E+2f。
{D}*。{D}+ 具有有效位數和小數位數的非整數型數值文字。 它有小數字數和小數點,至少有一位數 (D)。 這個數值常值具有DT_NUMERIC數據類型。 範例:.9、5.8 和 0.346。
{D}+.{D}* 具有有效位數和小數位數的非整數型數值文字。 它至少有一個有效位數(D)和一個小數點。 這個數字常值具有DT_NUMERIC資料類型。 範例:6.、0.2 和 8.0。
#{D}+ 譜系標識碼。 它由磅 (#) 字元和至少一位數 (D) 組成。 範例:#123。
0[xX]{H}+{uU} 十六進位格式的數值常量。 它包含一個數字0、一個大寫或小寫字母x、至少一個大寫字母H,以及可選的不帶符號的後綴。 範例:0xFF0A和 0X000010000U。

如需表達式評估工具所使用之數據類型的詳細資訊,請參閱 Integration Services 數據類型

表達式可以包含具有不同數據類型的數值常數。 當表達式評估工具評估這些表達式時,會將數據轉換成相容的類型。 如需相關資訊,請參閱 Integration Services Data Types in Expressions

不過,某些資料類型之間的轉換需要顯式類型轉換。 表達式評估工具會提供轉換運算符來執行明確的數據類型轉換。 如需詳細資訊,請參閱 Cast (SSIS 運算式)

將數值文字對應至整合服務數據類型

運算式評估器會在評估數字常值時執行下列轉換:

  • 整數數值常數會映射至整數資料型態,如下所示。

    後綴 結果類型
    沒有 DT_I4
    U DT_UI4
    L DT_I8
    UL DT_UI8

    這很重要

    如果沒有 long(L 或 l)後綴,表達式評估器會將帶正負號的值映射到 DT_I4 數據類型,將不帶正負號的值映射到 DT_UI4 數據類型,即使值超出數據類型的範圍,也會這樣做。

  • 包含指數的數值常數會被轉換為DT_R4或DT_R8資料類型。 如果表達式包含長後綴,則會轉換成DT_R8;如果它包含浮點數後綴,則會轉換成DT_R4數據類型。

  • 如果非整數數值常值包含 F 或 f,則會對應至 DT_R4 資料類型。 如果它包含 L 或 l,且數位是整數,則會對應至DT_I8數據類型。 如果是實數,則會對應至DT_R8數據類型。 如果它包含長後綴,則會轉換成DT_R8數據類型。

  • 具有有效位數和小數位數的非整數數值字面值會映射到 DT_NUMERIC 資料類型。

字串常值

字串常值必須以引號括住。 表達式語言會為常用的逸出字元提供一組逸出序列,例如非列印字元和引號。

字串文字包含零個或多個以引號括住的字元。 如果字串包含引號,則必須跳脫這些符號,才能對表達式進行剖析。 字串中允許 \x0000 以外的任何雙位元組字元,因為 \x0000 字元是字串的 Null 終止符。

字串可以包含需要跳脫字元序列的其他字元。 下表列出了字串字面值的逸出序列。

逸出序列 說明
\一個 警報
\b 退格鍵
\f 表單摘要
\n 換行
\r 回車鍵
\t 水平 Tab 鍵
\v 垂直索引標籤
\" 引號
\|反斜線
\xhhhh 十六進位表示法中的 Unicode 字元

布爾常值

運算式評估工具支援通常的布林文字常數:TrueFalse。 表達式評估工具不區分大小寫,而且允許大寫和小寫字母的任何組合。 例如,TRUE 的運作方式和 True 一樣。

備註

在表達式中,布爾常值必須以空格分隔。

pragmaticworks.com 上的一篇技術文章 SSIS 運算式速查表