Oracleデータベースに10列のテーブルhm_itemがあり、SQLサーバーデータベースに同じ名前のテーブルがあります。ユーザーがボタンをクリックしたときに、Oracleデータベースからデータをインポートする必要があります。これを行うための最良の方法はどれですか??
1279 次
1 に答える
2
使用する必要はありませんDataSet
。ADO.NETコマンドAPIを使用できるはずです。つまり、2つの接続で:
using(var sqlServer = GetOpenSqlServerConnection()) // TODO
using(var oracle = GetOpenOracleConnection()) // TODO
using(var cmd = oracle.CreateCommand())
using(var bcp = new SqlBulkCopy(sqlServer))
{
bcp.DestinationTableName = "TableName";
cmd.CommandText = "select * from TableName";
using(var reader = cmd.ExecuteReader())
{
bcp.WriteToServer(reader);
}
}
利点 (以上DataSet
):
- 一度にすべてのデータをメモリに保持する必要はありません。巨大なテーブルに最適
- 書き込みを開始する前にすべてのデータをロードするのを待つ必要はありません
- 両方向の高パフォーマンス生データ (行ごと/バッチごとのコマンドはありません - 「データはここにあります: 何とか何とか何とか」)
于 2012-08-06T08:11:19.023 に答える