プロシージャの代わりに関数を使用しない理由はありますか?
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;
次に、C#では次のように変更する必要があります:
cmd.Parameters.Add("resul", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
da.Fill(ds);
を実行すると 次に、関数が実行されます。つまり、cmd.ExecuteNonQuery();
を使用します。 関数を2回実行します。
とにかく、手順の正しい方法は次のとおりです。
cmd.CommandText = "ListadoClientes(:resul)";