表達式可以包含數值、字串和布爾常值。 表達式評估工具支援各種數值常值,例如整數、小數點和浮點常數。 運算式評估器也支援 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 字元 |
布爾常值
運算式評估工具支援通常的布林文字常數:True 和 False。 表達式評估工具不區分大小寫,而且允許大寫和小寫字母的任何組合。 例如,TRUE 的運作方式和 True 一樣。
備註
在表達式中,布爾常值必須以空格分隔。
相關內容
pragmaticworks.com 上的一篇技術文章 SSIS 運算式速查表