Какой будет SQL для ввода тысяч записей в Oracle DB с C #? - PullRequest
0 голосов
/ 20 декабря 2008

Каким будет SQL для ввода тысяч записей в Oracle db с помощью C #?

1 Ответ

5 голосов
/ 20 декабря 2008

Использование ODP.NET и привязки массива :

class Record {
  public int Value1 { get; set; }
  public int Value2 { get; set; }
}

Record[] records = GetRecords();

const string CMD_TEXT = "INSERT INTO TABLE (Col1, Col2) VALUES (:Col1, :Col2);"
using (var conn = new OracleConnection(connectionString))
using (var cmd = new OracleCommand(CMD_TEXT, conn)) {
   cmd.BindByName = true;
   // number of rows to insert
   cmd.ArrayBindCount = records.Length;

   // bind array of values to parameters
   cmd.Parameters.Add(":col1", OracleDbType.Int32, 
      records.Select(r => r.Value1).ToArray()
   );
   cmd.Parameters.Add(":col2", OracleDbType.Int32, 
      records.Select(r => r.Value2).ToArray()
   );

   conn.Open();
   cmd.ExecuteNonQuery();
   conn.Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...