我需要打电话吗。准备好吗?

时间:2015-11-12 09:13:28

标签: vb.net oracle oracle11g odp.net

说我有以下代码:

Using conn As New OracleConnection(connString)
    conn.Open()
    Using oCommand As New OracleCommand("MERGE INTO...")
        oCommand.BindByName = True
        oCommand.Parameters.Add("param1",OracleDbType.Raw,value,ParameterDirection.Input)
        oCommand.Parameters.Add("param2",OracleDbType.IntervalDS,value,ParameterDirection.Input)
        // etc.
        oCommand.Connection = conn
        oCommand.Prepare()
        oCommand.CommandType = CommandType.Text
        oCommand.ExecuteNonQuery()
    End Using
End Using

.Prepare是否必要?在这种情况下它做了什么?

2 个答案:

答案 0 :(得分:1)

不,这不是必需的。根据{{​​3}}的文件:

  

服务器会根据需要自动缓存重用计划;因此,无需在客户端应用程序中直接调用此方法。

答案 1 :(得分:0)

调用OracleCommand.Prepare没有任何好处。这是一个NOOP。

https://docs.oracle.com/html/E10927_01/OracleCommandClass.htm