Finns det en anledning till att du inte använder en funktion istället för procedur?
CREATE OR REPLACE FUNCTION ListadoClientes() RETURN sys_refcursor
IS
resul Sys_refcursor;
BEGIN
OPEN resul for select ID ,NOMBRES ,APELLIDOS ,CEDULA ,DIRECCION ,TELEFONO
from cliente;
RETURN resul;
END ListadoClientes;
Sedan i C# måste du ändra det till detta:
cmd.Parameters.Add("resul", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
När du kör da.Fill(ds);
sedan exekveras funktionen, dvs med cmd.ExecuteNonQuery();
kör funktionen två gånger.
Hur som helst, för en procedur bör det rätta sättet vara detta:
cmd.CommandText = "ListadoClientes(:resul)";