vb dts 转换数据问题
A数据库类型 oracle 10g,表tab_a (cola number(10),colb varchar2(20))
B数据库类型 oracle 10g,表tab_b (cola number(10),colb varchar2(20))
通过vb 调用dts 将tab_a表数据复制到tab_b表,出现数据不一致的情况,请教各位大大,什么原因阿?
tab_a 数据 cola colb
1 1000 1000
2 10000 10000
3 100000 100000
4 100001 100001
5 100002 100002
6 100003 100003
通过dts 复制完数据后
tab_b 数据
cola colb
1 0 1000
2 0 10000
3 0 100000
4 100001 100001
5 100002 100002
6 100003 100003
A数据库类型 oracle 10g,表tab_a (cola number(10),colb varchar2(20))
B数据库类型 oracle 10g,表tab_b (cola number(10),colb varchar2(20))
通过vb 调用dts 将tab_a表数据复制到tab_b表,出现数据不一致的情况,请教各位大大,什么原因阿?
tab_a 数据 cola colb
1 1000 1000
2 10000 10000
3 100000 100000
4 100001 100001
5 100002 100002
6 100003 100003
通过dts 复制完数据后
tab_b 数据
cola colb
1 0 1000
2 0 10000
3 0 100000
4 100001 100001
5 100002 100002
6 100003 100003
导入完成后,再update colc到cola
Public Sub DTS_Base_Main(drrq As String)
Set goPackage = New DTS.Package
Dim conn As DTS.Connection
'定义一个连接—test
Set conn = goPackage.Connections.New("OraOLEDB.Oracle.1")
conn.ConnectionProperties("Data Source") = "test"
conn.ConnectionProperties("Password") = "aa"
conn.ConnectionProperties("User ID") = "aa"
conn.ConnectionProperties("Persist Security Info") = True
conn.Name = "testa"
conn.ID = 1
goPackage.Connections.Add conn
Set conn = Nothing
'定义一个连接—yypt
Set conn = goPackage.Connections.New("OraOLEDB.Oracle.1")
conn.ConnectionProperties("Data Source") = "test"
conn.ConnectionProperties("Password") = "bb"
conn.ConnectionProperties("User ID") = "bb"
conn.ConnectionProperties("Persist Security Info") = True
conn.Name = "testb"
conn.ID = 2
goPackage.Connections.Add conn
Set conn = Nothing
' 建立步骤信息
Dim oStep As DTS.Step
Dim oPrecConstraint As DTS.PrecedenceConstraint
'定义一个步骤—复制数据hisfureal
Set oStep = goPackage.Steps.New
oStep.Name = "Copy Data from [testa].[tab_a] to [testb].[tab_b] Step"
oStep.TaskName = "Copy Data from [testa].[tab_a] to [testb].[tab_b] Task"
goPackage.Steps.Add oStep
'Set oStep = Nothing
goPackage.Steps.Add oStep
Set oStep = Nothing
' 调用子程序复制数据
Call Task_a(goPackage, drrq)
' 执行DTS包
goPackage.Execute
Set goPackage = Nothing
End Sub
'子程序Task_a复制数据
Public Sub Task_Hisfureal(ByVal goPackage As Object, drrq As String)
Dim oTask As DTS.Task
Dim cTask As DTS.DataPumpTask
Set oTask = goPackage.Tasks.New("DTSDataPumpTask")
Set cTask = oTask.CustomTask
cTask.Name = "Copy Data from [testa].[tab_a] to [testb].[tab_b] Task"
cTask.Description = "Copy Data from [testa].[tab_a] to [testb].[tab_b] Task"
cTask.SourceConnectionID = 1
cTask.SourceSQLStatement = "select * from test_a where init_date='" + drrq + "'"
cTask.DestinationConnectionID = 2
cTask.DestinationObjectName = "tab_b"
Call Task_Trans(cTask)
goPackage.Tasks.Add oTask
Set cTask = Nothing
Set oTask = Nothing
End Sub
'建立Transformation对象
Public Sub Task_Trans(ByVal cTask As Object)
Dim oTrans As DTS.Transformation
Set oTrans = cTask.Transformations.New("DTS.DataPumpTransformCopy")
oTrans.Name = "DataPumpTransformCopy"
cTask.Transformations.Add oTrans
Set oTrans = Nothing
End Sub