Powershell-DataTable一次加载一行数据



有一对相同的数据库,每个数据库有80个表:源(Oracle(和目标(SQL Server(。

有一个Powershell 7.x脚本处理数据:它从源读取一个表,在本地DataTable变量中进行一些简单的处理,并将结果写入目标。冲洗,重复x 80。

使用System.Data.OracleClient.OracleConnection读取源,使用System.Data.SqlClient.SqlBulkCopy填充目标

79个表相对较小,完全可以放在内存中,所以我使用System.Data.DataTable.Load()方法加载它们。

然而,1表在水平方向上非常大(每条记录包含十几兆字节的XML clob(,需要逐行处理,即从源加载、处理、写入目标的单行。

问题是:如何循环遍历System.Data.OracleClient.OracleConnection数据集中的各个记录,并将它们拉到本地DataTable对象?我在看System.Data.DataTable.LoadDataRow()方法,但它似乎没有达到我需要的效果。

不加载DataTable,只需调用ExecuteReader,并将DataReader传递给SqlBulkCopy.WriteToServer.

如果要使用LoadDataRow,请仍然使用ExecuteReader,同时使用rdr。Read((使用rdr。GetValues将行复制到对象数组中,然后可以将其传递给LoadDataRow。

相关内容

  • 没有找到相关文章

最新更新