Я вставляю много данных в базу данных Oracle, расположенную в Австралии, далеко от того места, где я запускаю клиентское приложение на C #.
Вот краткое изложение того, как я это делаю.Меня поражает, как быстро я вставляю сотни тысяч записей быстро, используя привязку массива.
Это не точный код, но вы поняли:
using System.Data.OleDb;
int numRecords = 2;
int[] DISTRIBNO = new int[numRecords];
DISTRIBNO[0] = 100;
DISTRIBNO[1] = 101;
string sql = "INSERT INTO Distributors (distribno) VALUES (:DISTRIBNO)";
cnn = new Oracle.DataAccess.Client.OracleConnection(conString);
cnn.Open();
using (Oracle.DataAccess.Client.OracleCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.BindByName = true;
// To use ArrayBinding, we need to set ArrayBindCount
cmd.ArrayBindCount = numRecords;
cmd.CommandTimeout = 0;
cmd.Parameters.Add(
":DISTRIBNO",
Oracle.DataAccess.Client.OracleDbType.Int32,
BR_VOLMONTH,
ParameterDirection.Input);
cmd.ExecuteNonQuery();
}//using
Карлос Мериге.