0

我需要在 ASP.NET 页面上有一个按钮,该按钮会触发从 Oracle 中的一个表到 Access DB 的数据复制。大约有 25'000 行。此过程每天将触发 2-3 次,优化(速度)是关键要求。

我尝试使用 Oracle 制作一个 DataReader 数据,然后遍历它,每次都使用 ExecuteNonQuery() 执行 INSERT 到 Access 中。使用此方法需要 5 分钟以上。

这根本不是我的专业领域,我会很感激一些关于我应该做什么的提示(甚至是一个工作代码示例)。

精度低:出于某种原因(我知道它已被弃用),我必须使用 System.Data.OracleClient。Oracle 中的表和 Access 中的表具有相同的字段名称。

4

1 回答 1

2

您可以针对包含与 Oracle 的内联连接的 MS Access 连接运行查询。我目前没有 Oracle 的副本,但它看起来像:

 INSERT INTO MyTable (field1name, field2name, etc )
 SELECT (field1name, field2name, etc ) 
 FROM [ODBC;Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;].MyTable;

http://www.connectionstrings.com/oracle#microsoft-odbc-for-oracle

您可以通过使用外部数据向导将相关表连接到您的 MS Access 副本,然后检查 Tabledef 的连接属性来获得准确的连接字符串。这导致了另一种可能性,即使用链接的 Oracle 表对 Access 连接运行查询。这将只是一个直接的 MS Access 查询。

最后,您应该能够从 Oracle 输出到 CSV 并导入到 MS Access,这应该比逐行更快,因为几乎所有内容都是如此。

于 2012-12-15T10:21:31.040 回答