У меня есть некоторые данные в таблице базы данных Oracle (около 4 миллионов записей), которые я хочу преобразовать и сохранить в базе данных MSSQL с помощью ADO.NET. До сих пор я использовал (для гораздо меньших таблиц) DataAdapter для чтения данных из базы данных Oracle и добавления DataTable в DataSet для дальнейшей обработки.
Когда я попробовал это с моим огромным столом, возникло исключение вне памяти. (Я предполагаю, что это потому, что я не могу загрузить всю таблицу в свою память) :)
Теперь я ищу хороший способ выполнить это извлечение / перенос / загрузку, не сохраняя всю таблицу в памяти. Я хотел бы использовать DataReader и читать отдельные dataRecords в DataTable. Если в нем около 100 тыс. Строк, я бы хотел обработать их и впоследствии очистить 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
Большое спасибо за ваш ответ!