日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSIS package 更新 variable

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSIS package 更新 variable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Package中聲明一個variable,在package運行的過程中,SSIS如何update Variable?

第一種方法:使用 Script Task 來更新Variable的值

1,創建一個variable ,VariableName是VarCode,并將變量傳遞到腳本的ReadWriteVariables數組中。

2,在C#腳本中,SSIS提供兩種方式訪問變量,第一種方式比較簡單,推薦使用。

//讀寫變量 第一種方式string VarName = this.Dts.Variables["User::VarName"].Value.ToString();int VarCode = int.Parse(this.Dts.Variables["User::VarCode"].Value.ToString());this.Dts.Variables["User::VarCode"].Value = 2;//讀寫變量 第二種方式 this.Dts.VariableDispenser.LockForRead("User::VarName");this.Dts.VariableDispenser.LockForWrite("User::VarCode");Variables vars=null;this.Dts.VariableDispenser.GetVariables(ref vars);string strName = vars["User::VarName"].Value.ToString();int iCode = int.Parse(vars["User::VarCode"].Value.ToString());vars["User::VarCode"].Value = 3;vars.Unlock();

第二種方法:使用 Script? Component 來更新Variable的值

?1,創建變量

2,將變量傳遞到Script component中

3,使用C#腳本引用變量,在script component中引用變量有兩種方式

3.1 使用變量名作為來引用變量

int code = this.Variables.VarCode;//string name = this.Variables.VarName;//this.Variables.VarName = "New VarName";

在引用ReadWrite類型的變量時,可能會發生異常“在PostExecute之外不能鎖定變量集合進行讀寫訪問”,就是說,不能在PostExecute函數之外通過這種方式引用ReadWrite類型的變量,如果發生這種異常,只需要將引用ReadWrite類型的變量的代碼放到PostExecute中就不會出錯了。

3.2使用加鎖方式來引用變量,這種方式能在PostExecute函數之外引用ReadWrite類型的變量

this.VariableDispenser.LockForRead("User::VarCode");this.VariableDispenser.LockForWrite("User::VarName"); IDTSVariables100 vars = null; this.VariableDispenser.GetVariables(out vars); int iCode = int.Parse(vars["User::VarCode"].Value.ToString()); string strName = vars["User::VarName"].Value.ToString(); vars["User::VarName"].Value = "New VarName"; vars.Unlock();

第三種方法:通過Execute Sql Task 為變量賦值,通過Sql語句返回單行結果集,將結果集更新到接收數據的變量上。

Result Set屬性:選擇 Single Row

Sql Statement: 輸入要賦值的sql語句 ?select 'ExecSqlCmd task' as Name, 2 as Code

Result Set選項卡:設置輸出的單行結果和變量之間的映射關系

?

第四種方法:通過Execute Sql Task 為變量賦值,使用Sql賦值語句,將結果集更新到接收數據的變量上。

sql賦值語句主要有兩種,select和set

declare @id intselect @id=1 set @id=1

創建Package變量

配置Execute Sql Task的屬性

Result Set屬性:選擇 None

Sql Statement: 輸入sql賦值語句 ?select ?='ExecSqlCmd task'

在Parameter mapping中配置Direction為Output

?

第五種方法:使用Expression Task為變量賦值

?

在Expression中輸入賦值的Expression。

?

第六種方法:為變量設置初始值,在創建變量的Variables窗體中,在Value輸入的值就是變量的初始值,也可以在Expression中,使用Expression為變量賦值

?

?

作者:悅光陰 出處:http://www.cnblogs.com/ljhdo/ 本文版權歸作者和博客園所有,歡迎轉載,但未經作者同意,必須保留此段聲明,且在文章頁面醒目位置顯示原文連接,否則保留追究法律責任的權利。 分類: SSIS 組件




本文轉自悅光陰博客園博客,原文鏈接:http://www.cnblogs.com/ljhdo/p/4498149.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的SSIS package 更新 variable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。