Is er een reden waarom u geen functie gebruikt in plaats van procedure?
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;
Dan moet je het in C# veranderen in dit:
cmd.Parameters.Add("resul", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
Wanneer u da.Fill(ds);
. uitvoert dan wordt de functie uitgevoerd, d.w.z. met behulp van cmd.ExecuteNonQuery();
voert de functie twee keer uit.
Hoe dan ook, voor een procedure zou de juiste manier deze moeten zijn:
cmd.CommandText = "ListadoClientes(:resul)";