通过数据集和数据表将数据从Oracle数据库表复制到SQl服务器数据库

时间:2012-08-06 07:59:42

标签: .net

我在oracle数据库中有一个表hm_item,它有10列,我在sql server数据库中有一个同名的表。现在我必须在用户点击按钮时从oracle数据库导入数据。这是最好的方法吗?

1 个答案:

答案 0 :(得分: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):

  • 无需立即将所有数据保存在内存中;非常适合大桌子
  • 在开始编写之前无需等待加载所有数据
  • 两个方向的高性能原始数据(没有每行/每批命令 - 只是“这里是数据:等等等等等等)”