क्या कोई कारण है कि आप प्रक्रिया के बजाय किसी फ़ंक्शन का उपयोग नहीं करते हैं?
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);
run चलाते हैं फिर फ़ंक्शन निष्पादित किया जाता है, अर्थात cmd.ExecuteNonQuery();
का उपयोग करके फ़ंक्शन को दो बार निष्पादित करता है।
वैसे भी, किसी प्रक्रिया के लिए सही तरीका यह होना चाहिए:
cmd.CommandText = "ListadoClientes(:resul)";