执行存储过程 Oracle C#



我正在尝试执行我在oracle数据库上创建的过程,但是我遇到了问题,因为它从未找到该过程,我已经按照此处(http://www.devart.com/dotconnect/oracle/docs/)的oracle连接文档进行操作,但它效果不佳。这是我的代码:

public static void ActualizarPacienteNn(Int64 idPacienteNN, Int64 idPaciente, string nombreUsuario, string contrasena)
{
    OracleConnection conexion = new OracleConnection();
    conexion = GenerarConexionOracle(nombreUsuario, contrasena);
    /*  
    OracleParameter[] parametros_procedimiento=new OracleParameter[]
    {
        new OracleParameter("ID_HCL_NN",idPacienteNN),
        new OracleParameter("ID_HCL_PACIENTE",idPaciente)
    };
    */
    OracleCommand comando = new OracleCommand();//se crea un comando
    comando.CommandType = System.Data.CommandType.StoredProcedure;
    comando.CommandText = "PROCEDURE";
    comando.Connection = conexion;
    comando.ParameterCheck = true;
    try
    {
        conexion.Open();
        OracleDataAdapter da = new OracleDataAdapter(comando);
        comando.ExecuteNonQuery();
    }
    catch (OracleException e)
    {
        Console.WriteLine(e);
        conexion.Close();
    }
    conexion.Close();
}

错误说,对象"过程"不存在。(我确定该程序存在)。

我正在使用devart dotconnect和一个oracle DB 11g。谢谢。

根据文档,您应该尝试这样的事情

public static void ActualizarPacienteNn(Int64 idPacienteNN, Int64 idPaciente, string nombreUsuario, string contrasena)
{
  //Establish connection
  OracleConnection conexion = new OracleConnection();
  conexion = GenerarConexionOracle(nombreUsuario, contrasena);
  conexion.Open();
  //Set up comando to reference stored procedure 'usp_ActualizaPaciente'
  OracleCommand comando = new OracleCommand("usp_ActualizaPaciente", myConn);
  comando.CommandType = System.Data.CommandType.StoredProcedure;
  comando.ParameterCheck = true;
  //Sample of how to bind parameters to the Stored Procedure
  OracleParameter myInParam1 = new OracleParameter();
  myInParam1.Value = idPaciente;
  myInParam1.ParameterName = "idPaciente";
  comando.Parameters.Add(myInParam1);
  myInParam1.Direction = System.Data.ParameterDirection.Input;
  //Execute the procedure.
  comando.ExecuteNonQuery();
  Console.WriteLine("Done");
  conexion.Close();
}

文档:http://www.devart.com/dotconnect/oracle/articles/parameters.html

最新更新