2012-12-15 84 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

相關問題