Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyoal Berbilang Pangkalan Data dalam SSIS Berdasarkan Data Diperoleh?

Bagaimana untuk Menyoal Berbilang Pangkalan Data dalam SSIS Berdasarkan Data Diperoleh?

DDD
Lepaskan: 2024-12-20 15:51:09
asal
179 orang telah melayarinya

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

Menyoal Berbilang Pangkalan Data Berdasarkan Data Diperoleh

Dalam SSIS, selalunya perlu untuk mendapatkan semula data daripada satu pangkalan data dan menggunakan data tersebut untuk membuat pertanyaan pangkalan data lain. Ini boleh dicapai melalui beberapa kaedah:

Kaedah 1: Transformasi Carian

Transformasi Carian membolehkan anda mendapatkan semula data daripada pangkalan data kedua dan menambahkannya pada aliran data . Walau bagaimanapun, ia tidak secara semula jadi menapis baris berdasarkan data yang diambil.

Untuk menapis baris menggunakan Transformasi Carian, kendalikan ralat semasa proses carian. Anda boleh menetapkan Pengendalian Ralat kepada Abaikan Baris dan gunakan Pemisahan Bersyarat untuk mengalih keluar baris dengan nilai nol dalam lajur yang ditambahkan. Sebagai alternatif, anda boleh menetapkan Pengendalian Ralat kepada Ubah Hala Baris untuk menghalakan semua baris ke baris keluaran ralat, yang kemudiannya boleh ditapis.

Kaedah 2: Tugasan Skrip

Untuk pengambilan data yang lebih selektif, pertimbangkan untuk menggunakan Tugasan Skrip:

' 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) & ")"
Salin selepas log masuk

Tetapkan Pembolehubah "User::MyVariableList" sebagai sumber untuk mendapatkan semula data seterusnya.

Kaedah 3: Laksanakan Tugasan SQL

Pendekatan lain ialah Laksanakan Tugasan SQL:

  • Dalam Laksanakan Tugas SQL, tetapkan ResultSet kepada Single dan Result Tetapkan kepada Pengguna::MyVariableList.
  • Gunakan arahan SQL berikut:
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
Salin selepas log masuk

Ini menjana pertanyaan SQL yang merangkumi ID yang diambil dalam klausa IN. Berikan output kepada pembolehubah User::MyVariableList dan gunakannya sebagai Sumber OLEDB untuk pengambilan data daripada pangkalan data kedua.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Berbilang Pangkalan Data dalam SSIS Berdasarkan Data Diperoleh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan