以下のコードをOracleサーバーからSQL Server 2005に一括コピーしようとしていて、タイムアウトが発生します。 Oracle接続のタイムアウトをどのように延長できますか?それは私がウェブ上で読んだものからできないようです。ここ.netアプリケーションのOracle接続のタイムアウトを
OracleConnection source = new OracleConnection(GetOracleConnectionString());
source.Open();
SqlConnection dest = new SqlConnection(GetSQLConnectionString());
dest.Open();
OracleCommand sourceCommand = new OracleCommand(@"select * from table");
using (OracleDataReader dr = sourceCommand.ExecuteReader())
{
using (SqlBulkCopy s = new SqlBulkCopy(dest))
{
s.DestinationTableName = "Defects";
s.NotifyAfter = 100;
s.SqlRowsCopied += new SqlRowsCopiedEventHandler(s_SqlRowsCopied);
s.WriteToServer(dr);
s.Close();
}
}
source.Close();
dest.Close();
は私のOracle接続文字列である:あなたの接続文字列で
return "User Id=USER;Password=pass;Data Source=(DESCRIPTION=" +
"(ADDRESS=(PROTOCOL=TCP)(HOST=14.12.7.2)(PORT=1139))" +
"(CONNECT_DATA=(SID=QCTRP1)));";
を予算内に設定せず、20,000レコードしか設定できません。私は良い市民であり、必要以上にリソースをロックしたくないです。 – kacalapy
私はORACLEデータをSQLに取得するために使用できる無料のETLツールがあり、これを定期的に毎日実行するようにスケジュールしますか? – kacalapy
私は頭の上から何の推薦もありませんが、グーグルの "free etl"は有望な結果を返しました。ほとんどのETLツールは、データベースに依存しません(または少なくともOracleとSQL Serverをサポートしています)。 –