使用SqlBulkCopy在不同源之间传输数据

时间:2013-08-06 12:05:32

标签: .net database vb.net oracle sql-server-ce

我在Oracle数据库中有一个表,在SqlCe数据库中有另一个表。两个表都被称为相同,我想使用.NET Framework中提供的SqlBulkCopy将SqlCe数据库中的表的所有内容传输到Oracle数据库中的同一个表。

我知道使用SqlBulkCopy可以将任何来自任何源的数据传输到Sql数据库,但我不确定是否可以从Sql数据库(在我的情况下,SqlCe)到任何源,例如,从SqlCe到Oracle。如果有可能有人确认我吗?

1 个答案:

答案 0 :(得分:2)

您不会使用SqlBulkCopy,因为它与SQL Server的连接协议(TDS)相关联;但是,由于目标是oracle,OracleBulkCopy应该可以正常工作。您只需在SqlCe源上使用ExecuteReader,然后将其输入:

using(var target = new OracleBulkCopy(oracleConnectionString))
using(var source = cecmd.ExecuteReader()) {
    target.DestinationTableName = "Foo";
    target.WriteToServer(source);
}

http://docs.oracle.com/html/E10927_01/OracleBulkCopyClass.htm