Как мне сделать массовую вставку в Oracle, используя C #? - PullRequest
0 голосов
/ 24 августа 2011

Я пытаюсь сделать массовую вставку в Oracle из C #. У меня есть данные в массиве списка объектов. В настоящее время вставка как:

using (OracleCommand command = new OracleCommand(commandString, oc.connection))//, _transaction))
  {
     string[] temp = netstat.getStrings();

     //replace with nulls

     command.Parameters.Add("node", OracleType.VarChar, 255).Value = temp[0];
     command.Parameters.Add("protocol", OracleType.VarChar, 10).Value = temp[1];
     command.Parameters.Add("localip", OracleType.VarChar, 25).Value = temp[2];
     command.Parameters.Add("localport", OracleType.VarChar, 10).Value = temp[3];
     command.Parameters.Add("foreignip", OracleType.VarChar, 25).Value = temp[4];
     command.Parameters.Add("foreignport", OracleType.VarChar, 10).Value = temp[5];

     if (temp[6] == null)
       {
         command.Parameters.Add("state", OracleType.VarChar, 25).Value = DBNull.Value;
       }
     else
       {
         command.Parameters.Add("state", OracleType.VarChar, 25).Value = temp[6];
       }

     command.Parameters.Add("pid", OracleType.VarChar, 10).Value = temp[7];
     try
       {
         command.ExecuteNonQuery();
       }
     catch (OracleException e)
       {
         string errorMessage = "Code: " + e.Code + "\n" +
                               "Message: " + e.Message;

         //System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
         //log.Source = "My Application";
         //log.WriteEntry(errorMessage);
         Console.WriteLine("An exception occurred. Please contact your system administrator. " + errorMessage);
       }
  }

Это займет около 10 секунд на объект! Есть ли более быстрый способ сделать это? Я использую Microsoft System.Data.OracleClient. Должен ли я рассмотреть вопрос о переключении этого? Моя цель - скорость и переносимость приложения ... В настоящее время я распространяю exe вместе с DLL-библиотеками интерфейса вызова оракула, чтобы он работал без установленного оракула. ​​

1 Ответ

1 голос
/ 24 августа 2011

MS-клиент не очень хорош. Вам лучше с ODP.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...