我如何做一个批量插入到Oracle使用c#

本文关键字:Oracle 使用 插入 何做一 | 更新日期: 2023-09-27 18:06:38

我正在尝试从c#批量插入到Oracle。我把数据放在对象的数组列表中。当前插入as:

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连同oracle调用接口dll,所以它将运行没有安装oracle。

我如何做一个批量插入到Oracle使用c#

MS客户端不是很好。您最好使用ODP.net