SSIS-如何使用指令碼工作(Script task),寫入資料到sybase

SSIS-如何使用指令碼工作(Script task),寫入資料到sybase

一般我們使用ssis都是用”資料流程工作”做批次新增或使用”執行sql 工作”來執行單一命令或procedure,除非情況不得以,需要使用”指令碼工作”來寫程式轉資料,但其實個人覺得,各有各的優缺點…

那如果真的非不得以,要用到”指令碼工作”,來寫資料到資料庫,那重點就是怎麼在script中連線了…

以下的教學就是主講這段..

所使用工具

ssis2008

首先拉一個”指令碼工作”

clip_image001

在指令碼工作上按滑鼠右鍵,選編輯,出現如下視窗,在ssis2008中,終於有支援以c#來寫程式碼了,所以這次我選c#,選好之後,點”編輯指令碼”的按鈕

clip_image002

之後開啟程式碼編輯視窗,請在main這個function中,輸入下列程式碼

clip_image003

以下為範例程式碼


           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”指的是你在

clip_image004 所設的名稱,

這裡一樣不能使用sybase_oledb,

再來重點是IDTSConnectionManagerDatabaseParameters100這個interface,一開始並沒有參考到,

所以如果你把我的程式碼copy去用的話,這一行會出現紅色的毛毛蟲(不是真的蟲啦,就…寫程式的術語..)

我們要再參考一個.net的dll

在專案視窗中的”參考”,按滑鼠右鍵,選加入參考

clip_image005

然後會經過一小時喝咖啡時間(電腦效能較弱的人,會等一段時間啦…)

會出現一個視窗,找到Microsoft.SQLServer.DTSRuntimeWrap這個dll

clip_image006

加入後,記得要using,不然還是沒效

clip_image007

做完以上的動作後,你的程式碼就不會出現紅色的毛毛蟲了

ok,到這裡就算是結束了,來執行看看吧

出現ok囉!代表成功了

clip_image008

看看寫入的資料是否正確

clip_image009

ok啦~完成,打包收工…

‧覺得文章不錯請給我一個『讚』作為鼓勵喔!