首頁 > 資料庫 > mysql教程 > 如何根據檢索到的資料在SSIS中查詢多個資料庫?

如何根據檢索到的資料在SSIS中查詢多個資料庫?

DDD
發布: 2024-12-20 15:51:09
原創
179 人瀏覽過

How to Query Multiple Databases in SSIS Based on Retrieved Data?

根據檢索到的資料查詢多個資料庫

在SSIS中,經常需要從一個資料庫檢索資料並使用該資料進行查詢另一個資料庫。這可以透過多種方法來實現:

方法1:尋找轉換

尋找轉換可讓您從第二個資料庫擷取資料並將其新增至資料流中。但是,它本質上不會根據檢索到的資料過濾行。

若要使用查找轉換過濾行,請在查找過程中處理錯誤。您可以將錯誤處理設定為忽略行,並使用條件拆分來刪除新增列中具有空值的行。或者,您可以將錯誤處理設定為重定向行,將所有行路由到錯誤輸出行,然後可以對其進行過濾。

方法2:腳本任務

對於更具選擇性的資料檢索,請考慮使用腳本任務:

' Get the list of IDs from the first database
Dim lst As New Collections.Generic.List(Of String)
Dim myADONETConnection As SqlClient.SqlConnection = _
    DirectCast(Dts.Connections("TestAdo").AcquireConnection(Dts.Transaction), _
    SqlClient.SqlConnection)
myADONETConnection.Open()

Dim myADONETCommand As New SqlClient.SqlCommand("Select [ID] FROM dbo.MyTable", myADONETConnection)
Dim dr As SqlClient.SqlDataReader
dr = myADONETCommand.ExecuteReader

While dr.Read
    lst.Add(dr(0).ToString)
End While

' Construct the query for the second database
Dts.Variables.Item("User::MyVariableList").Value = "SELECT ... FROM ... WHERE ID IN(" & String.Join(",", lst) & ")"
登入後複製

將「User ::MyVariableList」變數分配為

方法三:執行SQL任務

另一種方法是執行SQL 任務:

  • 在執行SQL任務,將ResultSet設定為Single,將Result Set設定為User::MyVariableList.
  • 使用下列SQL指令:
DECLARE @str AS VARCHAR(4000)
SET @str = ''
SELECT @str = @str + CAST([ID] AS VARCHAR(255)) + ','
FROM dbo.MyTable
SET @str = 'SELECT * FROM MySecondDB WHERE ID IN (' + SUBSTRING(@str,1,LEN(@str) - 1) + ')'
SELECT @str
登入後複製

這會產生一個 SQL 查詢,其中在 IN 子句中包含檢索到的 ID。將輸出指派給 User::MyVariableList 變量,並將其用作 OLEDB 來源,以便從第二個資料庫檢索資料。

以上是如何根據檢索到的資料在SSIS中查詢多個資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板