SSIS OLE DB 命令 使用方法

2021-06-27 06:06:07 字數 2194 閱讀 7391

」ole db 命令「任務接受輸入流中的行資料並執行一段sql語句或自定義儲存過程。這個轉換和execute sql任務容易混淆,但是它非常類似於在ado連線中迴圈接收乙個結果集中的資料,建立,執行乙個ado命令。輸入流中的引數資料可以提供給乙個sql命令或者儲存過程。這裡我們看到「迴圈」可能就會聯想到另外乙個詞「效能」。這可能涉及到更新,插入,刪除語句,每次都會有斷開,連線的操作。但是並不意味著這個轉換一無是處,這裡我們著重理解這個任務如何配置和使用的。要注意有多少輸入資料並在需要快取資料到臨時表或實際表時權衡效能和伸縮性,以達到最優效果。

連線管理:設定ole db連線,通過這個連線獲得要執行的sql語句,要注意輸入流中的引數資料並不一來自這個源

元件屬性:在這個標籤內,sqlcommand屬性設定sql語句,commandtimeout屬性設定連線失效時間,這點和ado連線物件的工作原理是一樣的,設定為0表示沒有失效時間。在這個標籤內還可以設定任務名字和描述

列對映:這個標籤顯示輸入流中的列和目標列,即sql語句中的引數名字。使用滑鼠拖拽的方法將他們連線起來。他們是一一對應的,假設語句中的引數要比輸入流中的多,需要使用派生列轉換產生多餘的列

輸入和輸出屬性:多數時候在列對映標籤內可以完成輸出列設定,但是如果ole db資料來源不支援派生引數,需要在這裡使用parametersnames和dbparaminfoflags屬性設定輸出列

學習這個轉換任務的最好方法是操作乙個例子。這個例子假設要驗證每天的存款資料並在資料庫中建立存款項。您還必須為每個客戶建立支付交易,以便會計核算人員通過軟體來審查。在這個例子中我們不需要知道如何建立存款項和支付交易,我們只是建立兩個空的儲存過程來完成這項工作。

建立乙個package 命名為ole db command,新增乙個data flow tesk,雙擊進入control flow

新建乙個文字檔案,並儲存到c:\ole db eft data.txt,檔案內容如下:

customerid,depositamt,depositdate,invoice

xy-111-222,$100.00,07/13/2005,222-063105

xx-z11-232,$1000.00,07/13/2005,232-063105

xx-y88-233,$555.00,07/13/2005,233-053105

執行下面的sql語句,在資料庫adventureworks中建立兩個空的儲存過程

use adventureworks

gocreate proc usp_deposittrans_add (

@customerid varchar(10),

@depositamt money,

@depositdate smalldatetime,

@invoice varchar(15))

as---乙個空的儲存過程只是為了做例項

gocreate proc usp_paymenttrans_add (

@customerid varchar(10),

@depositamt money,

@depositdate smalldatetime,

@invoice varchar(15))

as--乙個空的儲存過程只是為了做例項

新增乙個flat file source,連線到c:\ole db eft data.txt

在data flow設計介面內拖放乙個ole db command task,將flat file source和它連線起來

開啟ole db command的編輯介面,在connection manager設定連線到資料庫adventureworks。在component properties標籤介面內,設定sqlcommand屬性為usp_deposittrans_add ?, ?, ?, ?。這裡?表示乙個輸入引數。最後的介面如圖1

圖1再新增乙個ole db command,將第乙個和第二個連線起來,配置和第乙個類似,但在這裡sql commond屬性設定為usp_paymenttrans_add ?, ?, ?, ?

執行這個package,文字檔案中的三行資料作為這兩個儲存過程的引數輸入執行。如果儲存過程是真實存在的,就會建立三個存款項和三個交易。這裡我們也可以看到這裡可以重複使用這三個儲存過程,只要提供適當的引數。在這個例子中,可以重複使用現有的邏輯,將一批資料一次輸入到package中執行。

vi命令使用方法

vi替換命令用法詳解 ranges pat1 pat2 g 其中 這是 vi的命令執行介面。range 是命令執行範圍的指定 百分號 表示所有行 點 表示當前行 美元 表示最末行 例如 10,20表示第 10到20行,表示當前行到最後一行,2,5表示當前行後兩行直到全文的倒數第五行 s 表示其後是乙...

linux sed命令使用方法

原文 sed命令列格式為 sed nefri command 輸入文字 常用選項 n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin的資料一般都會被列出到螢幕上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作 才會被列出來。e 直接在指令列模式上進...

命令 ln 使用方法

指令名稱 ln 使用許可權 所有使用者 使用方式 ln options source dist,其中 option 的格式為 bdfinsvf s backup suffix v help version 說明 linux unix 檔案系統中,有所謂的鏈結 link 我們可以將其視為檔案的別名,而...