SSIS를 통해 데이터를 가지고 올 때 여러 대의 mysql 서버를 접속해서 데이터를 가지고 오는 경우가 있다. 예를 들면 게임DB가 여러 대 있을 경우 DB만 여러 개이고, 스키마 정보는 동일할 때 사용하기 좋은 방법이다.
여러 방법이 있지만 내가 아는 방법은 foreach문에 script task로 접속 정보 변경을 통해 접근하는 방법이다.
아래 코드에서 __v_dbname, __v_ip, __v_port, userid, password, connection 부분은 자신에게 맞게 수정해야 한다.
SSIS Script Task
언어: Visual Basic
public sub Main()
Dim db_connection As String
Dim strdb_name As String
Dim strsvr_ip As String
Dim strsvr_port As String
Dim FailConn As Boolean
Dim FireAgain As Boolean
Dim conn As New MySqlConnection
FailConn = False
FireAgain = True
strdb_name = Dts.Variables("__v_dbname").Value.ToString 'ssis변수에서 받아오는 부분
strsvr_ip = Dts.Variables("__v_ip").Value.ToString 'ssis변수에서 받아오는 부분
Strsvr_port = Dts.Variables("__v_port").Value.ToString 'ssis변수에서 받아오는 부분
db_connection = "server =" & strsvr_ip & ";user id=userid;password=password;port=" & Strsvr_port & ";database=" & strdb_name & ";"
If Not conn Is Nothing Then conn.Close()
conn.ConnectionString = db_connection
Try
Dts.Connections("connection").ConnectionString = db_connection
conn.Open()
Dts.TaskResult = ScriptResults.Success
'MsgBox(db_connection, MsgBoxStyle.Information, db_connection)
Catch ex As Exception
'Dts.Events.FireError(0, "My Script Task", "An error occured:" + ex.Message.ToString(), "", 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End sub
|
댓글 없음:
댓글 쓰기