SSIS-如何使用指令碼工作(Script task),寫入資料到sybase
一般我們使用ssis都是用”資料流程工作”做批次新增或使用”執行sql 工作”來執行單一命令或procedure,除非情況不得以,需要使用”指令碼工作”來寫程式轉資料,但其實個人覺得,各有各的優缺點…
那如果真的非不得以,要用到”指令碼工作”,來寫資料到資料庫,那重點就是怎麼在script中連線了…
以下的教學就是主講這段..
所使用工具
ssis2008
首先拉一個”指令碼工作”
在指令碼工作上按滑鼠右鍵,選編輯,出現如下視窗,在ssis2008中,終於有支援以c#來寫程式碼了,所以這次我選c#,選好之後,點”編輯指令碼”的按鈕
之後開啟程式碼編輯視窗,請在main這個function中,輸入下列程式碼
以下為範例程式碼
ConnectionManager cm = Dts.Connections["sybase_odbc"];
IDTSConnectionManagerDatabaseParameters100 cmParams = cm.InnerObject as IDTSConnectionManagerDatabaseParameters100;
OdbcConnection conn = cmParams.GetConnectionForSchema() as OdbcConnection;
OdbcCommand cmd = new OdbcCommand("insert into collectorder(orderno,prod) values(3,'台')", conn);
cmd.ExecuteNonQuery();
“sybase_odbc”指的是你在
這裡一樣不能使用sybase_oledb,
再來重點是IDTSConnectionManagerDatabaseParameters100這個interface,一開始並沒有參考到,
所以如果你把我的程式碼copy去用的話,這一行會出現紅色的毛毛蟲(不是真的蟲啦,就…寫程式的術語..)
我們要再參考一個.net的dll
在專案視窗中的”參考”,按滑鼠右鍵,選加入參考
然後會經過一小時喝咖啡時間(電腦效能較弱的人,會等一段時間啦…)
會出現一個視窗,找到Microsoft.SQLServer.DTSRuntimeWrap這個dll
加入後,記得要using,不然還是沒效
做完以上的動作後,你的程式碼就不會出現紅色的毛毛蟲了
ok,到這裡就算是結束了,來執行看看吧
出現ok囉!代表成功了
看看寫入的資料是否正確
ok啦~完成,打包收工…
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!