使用ODP.NET进行Oracle批量更新

看一下这个例子来做批量插入,我假设使用相同的逻辑可以用于更新。 我尝试了以下内容,看看它是否可行,但它没有:

string sql = "update TEST set NAME=:newName where NAME=:name"; connection.Open(); OracleCommand command = connection.CreateCommand(); command.CommandText = sql; command.CommandType = System.Data.CommandType.Text; command.BindByName = true; command.ArrayBindCount = 5; string[] originalName = { "Test1", "Test2", "Test3", "Test4", "Test5" }; string[] newName = { "New Test1", "New Test2", "New Test3", "New Test4", "New Test5" }; command.Parameters.Add(":newName", OracleDbType.Varchar2, originalName, System.Data.ParameterDirection.Input); command.Parameters.Add(":name", OracleDbType.Varchar2, newName, System.Data.ParameterDirection.Input); command.ExecuteNonQuery(); connection.Close(); 

这不适用于更新吗? 有没有办法轻松地进行批量更新,类似于在我链接的示例中如何执行批量插入?

事实certificate我的参数名称被翻转了。 让我永远找到它。

你不能将数组作为参数传递。

你可以做的是遍历你的数组并为数组的每个位置调用更新(这不是真正的“批量”插入),或者你可以使用类似的东西:

 WHERE NAME in ("Test1", "Test2", "Test3", "Test4", "Test5") 

等等