SSIS中的指令碼 表示式

2022-02-11 09:08:45 字數 2258 閱讀 5306

表示式是使用一些元素組合起來產生乙個唯一的值。這些元素包括變數,字面值,函式,儲存過程和運算子。乙個簡答的表示式是1<2,它的結果是true。雖然表示式是從c語言中衍生出來,但是他們大小寫不明感。

ssis中很多的任務都支援表示式。所有的任務都支援使用表示式來配置屬性。例如for loop和foreach loop中可以使用表示式來設定迴圈條件,derived column任務可以使用表示式來定義輸出。

動態屬性

ssis中通過表示式可以動態的執行轉換任務。

右擊任務選擇編輯,開啟編輯介面。在左方有一些歸類標籤,點選這些標籤可以開啟一類相關的屬性。每一種任務都會有乙個表示式標籤,如圖1

圖1在這個編輯框中有兩個列,乙個是表示式名字,乙個是表示式的值。在表示式名字中可以開啟乙個下拉列表,在這個表中選擇要用的表示式,之後就可以在值這個列中編輯乙個表示式值。在編輯表示式值的時候也可以點選右邊的園形按鈕開啟表示式值編輯器。如圖2

圖2點選右邊欄中表示式旁邊的加號可以檢視所有的表示式。點選文字框旁邊的圓形按鈕可以開啟表示式編輯框,如圖3

圖3這個編輯器非常強大,左邊框中的樹形結構羅列出要編輯的表示式。在右邊框中的樹形結構羅列了所有可以使用的表達是函式和操作符。點選乙個函式或者操作符的時候在下方description欄中將會自動展示一些解釋說明。也可以直接點選想要的表示式或者表示式函式到編輯框中而不是手動鍵入。

在表示式編輯器中設定表示式,注意表示式的值要和表示式相符,例如如果選擇delayvalidation屬性,那麼表示式的結果一定要是乙個布林型別。設定好之後可以店家evaluate expression來驗證,如果不符則會彈出錯誤提示。例如我們輸入字母a則會得到如圖4的錯誤提示。

圖4任務中的表示式

在任務中也可以使用表示式。最典型的就是derived column任務。下面我們看看在derived column中我們如何使用。新建乙個包,在control flow中拖放乙個data flow task,雙擊進入data flow,在其中拖放乙個ole db資料來源,選擇檢視[humanresources].[vemployee]。在columns標籤中只選擇firstname,middlename,lastname三個列。

新增乙個derived column任務,把它和資料來源連線起來。雙擊derived column開啟編輯器,可以看到如圖5的介面,這個介面可表示式編輯器非常的相似。不同的地方在表示式邊界框中,這裡不是乙個文字框,而是乙個用來編輯輸出列的可以編輯的**。

圖5在第一列中輸入fullname,在derived column列中選擇,最後在expression這一列中輸入如下的表示式:

firstname + ""+ middlename + ""+ lastname

這個表示式非常的簡單,只是將所有名字連線起來作為乙個完整的名字,中間是偶那個空格隔開。

點選ok儲存,關閉表示式編輯介面。新增乙個平面檔案或者是excel格式的資料目的,把他和derived column連線起來。最後執行這個包。這裡我們選擇使用excel格式的資料目的。執行成功之後可以看到如圖6的結果。

圖6我們會發現fullname這一列中有一些列是空的,這是因為有一些人沒有middlename,使得表示式的值有誤,這樣的結果不是我們希望的。我們需要判斷middlename的值。開啟表示式編輯器重新編輯如下:

firstname + (isnull(middlename)? " ": " "+ middlename + " ") + lastname

這裡使用isnull函式判斷然後使用問號表示式來處理middlename。

這個函式是從c語言演化而來的。三元表示式和vb中的iif函式很相似。最後儲存關閉編輯器。最後檢視excel檔案,這次每一行都都有乙個值,如圖7

圖7新的表示式語言為ssis提供了強大的功能,使用起來更加便捷。更加詳細的介紹在sql server 2008聯機叢書中可以找到。

SSIS 實用的表示式

下面,列出一些實用的表示式 1,路徑取檔名 right filepath findstring reverse filepath 1 1 right user filepath findstring reverse user filepath 1 1 2,空字元設定預設值 len string co...

SSIS 變數和表示式

變數和屬性表示式是 ssis 設計中非常重要的組成部分,它們是提高ssis 靈活性的主要手段。變數和屬性表示式是互相關聯的,通常在屬性表示式中常常使用變數,所以我把他們放在一起介紹。變數 早在 sql server dts 中就引入了變數的概念,它的定義就像其他程式語言一樣,起到在程式中 ssis ...

SSIS 實用表示式部分總結

下面,列出一些實用的表示式 1,路徑取檔名 1 right filepath findstring reverse filepath 1 1 2 right user filepath findstring reverse user filepath 1 1 2,空字元設定預設值 1 len str...