我在 oracle 数据库中有一个表 hm_item,它有 10 列,我在 sql server 数据库中有一个同名的表。现在,当用户单击按钮时,我必须从 oracle 数据库中导入数据。这样做的最佳方法是什么?
问问题
1279 次
1 回答
2
无需使用DataSet
;您应该能够使用 ADO.NET 命令 API,即使用您的两个连接:
using(var sqlServer = GetOpenSqlServerConnection()) // TODO
using(var oracle = GetOpenOracleConnection()) // TODO
using(var cmd = oracle.CreateCommand())
using(var bcp = new SqlBulkCopy(sqlServer))
{
bcp.DestinationTableName = "TableName";
cmd.CommandText = "select * from TableName";
using(var reader = cmd.ExecuteReader())
{
bcp.WriteToServer(reader);
}
}
优点(超过DataSet
):
- 无需一次将所有数据保存在内存中;非常适合大桌子
- 无需等待加载所有数据即可开始写入
- 双向的高性能原始数据(没有每行/每批命令 - 只是“这里的数据:等等等等”)
于 2012-08-06T08:11:19.023 回答