2012-12-15 44 views
0

我需要在ASP.NET页面上有一个按钮,该按钮可以触发从Oracle中的一个表格到Access DB的数据副本。大约有25'000行。这个过程每天会触发2-3次,优化(速度)是关键要求。将批量数据从Oracle加载到使用ASP.NET访问

我试着用Oracle数据制作一个DataReader,然后遍历它,每次用ExecuteNonQuery()进行Access的INSERT操作。使用这种方法需要超过5分钟。

这不是我的专业领域,我很感激一些提示(甚至是一个工作代码示例),我应该做些什么。很少精度:由于某种原因(我知道它已被弃用),我不得不使用System.Data.OracleClient。 Oracle中的表和Access中的表具有相同的字段名称。

+0

使用网格视图来保存来自oracle数据库的数据吗? –

+0

不,我根本不显示数据。它只是从Oracle到Access的一个副本。 UI只有一个“从Oracle导入按钮”。 – ilovebigmacs

回答

2

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

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的副本得到一个准确的连接字符串使用外部数据向导进行访问,然后检查Tabledef的连接属性。这导致了另一种可能性,即使用链接的Oracle表针对Access连接运行查询。这将只是一个直接的MS Access查询。

最后,你应该能够从Oracle输出到CSV并导入到MS Access中,这应该比逐行更快,因为几乎所有东西都是。

+0

谢谢。这就是我最终做的:导出到一个平面文件,然后导入。运作良好,速度相当快。 – ilovebigmacs

相关问题