2017-06-19 25 views
0

我已成功使用Oracle.ManagedDataAccess.Client將數據從Oracle服務器提取到Dataset,並使用SqlBulkCopyDataset插入SQL數據庫,其中表具有匹配的列名稱(請參見下文) 。如何將OracleAdapter數據集轉換爲SQL BulkCopy

我怎麼會去操縱DatasetInsert這樣我就可以指定在Dataset列將進入SQL表,讓我用非相同的表?

E.g. SourceTable(column1)插入到DestinationTable(column4)

我想這可能是能夠與SQL INSERT語句等來實現:

INSERT INTO DestinationTable ([column4]) Values ([column1])

但我不知道如何操作Dataset到我的SQL語句。我的代碼到目前爲止

Dim i As Double = 1 
    Dim j As Double = 5000 

    Dim Oconn As New OracleConnection(connectionString & mySource) 

    Oconn.Open() 

    Dim Osqlstr As String = "Select column1, " _ 
           & "column2, " _ 
           & "column3, " _ 
           & "column4, " _ 
           & "from " _ 
           & "(Select rownum r, " _ 
           & "column1, " _ 
           & "column2, " _ 
           & "column3, " _ 
           & "column4, " _ 
           & "from mysourcetable)" _ 
           & "where rownum >=" & i & " and rownum <=" & j _ 
           & " order by column1 asc" 

    Dim Ocommand As New OracleCommand(Osqlstr, Oconn) 
    Dim Oda As New OracleDataAdapter(Ocommand) 
    Dim Ods As New DataSet() 

    Oda.Fill(Ods) 

    Using myBulk As New SqlBulkCopy(DB_COMMS) 

     myBulk.DestinationTableName = "mydestinationtable" 
     Try 
      myBulk.WriteToServer(Ods.Tables(0)) 
     Catch ex As Exception 
      MsgBox("Error:- " & ex.Message) 
     End Try 

    End Using 

    Ods.Dispose() 

    Oconn.Close() 

回答