0

Oracle のあるテーブルから Access DB へのデータ コピーをトリガーする ASP.NET ページにボタンが必要です。約 25,000 行あります。このプロセスは 1 日あたり約 2 ~ 3 回トリガーされ、最適化 (速度) が重要な要件です。

Oracle を使用して DataReader を作成してから、ExecuteNonQuery() を使用して Access に INSERT を実行するたびに、それを反復処理してみました。この方法を使用すると、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 に答える