我在 Oracle 数据库表中有一些数据(大约 400 万条记录),我想使用 ADO.NET 将其转换并存储在 MSSQL 数据库中。到目前为止,我使用(对于更小的表)DataAdapter 从 Oracle 数据库中读取数据并将 DataTable 添加到 DataSet 以进行进一步处理。
当我用我的大表尝试这个时,抛出了一个内存不足的异常。(我认为这是因为我无法将整个表加载到我的内存中):)
现在我正在寻找一种执行此提取/传输/加载的好方法,而无需将整个表存储在内存中。我想使用 DataReader 并读取 DataTable 中的单个 dataRecords。如果其中有大约 100k 行,我想处理它们并在之后清除 DataTable(再次获得可用内存)。
现在我想知道如何使用 ado.net 将单个数据记录作为一行添加到数据表中,以及如何完全清除内存中的数据表:到目前为止我的代码:
Dim dt As New DataTable
Dim count As Int32
count = 0
' reads data records from oracle database table'
While rdr.Read()
'read n records and add them to a dataTable'
While count < 10000
dt.Rows.Add(????)
count = count + 1
End While
'transform data in the dataTable, and insert it to the destination'
' flush the dataTable after insertion'
count = 0
End While
非常感谢您的回复!