Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ऑरैकल के sys_refcursor को सी # पर वापस करें

क्या कोई कारण है कि आप प्रक्रिया के बजाय किसी फ़ंक्शन का उपयोग नहीं करते हैं?

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)";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो खंडों के बीच दिनों की गणना करें

  2. कैसे ठीक करें प्रदाता Oracle क्लाइंट के संस्करण के साथ संगत नहीं है?

  3. सी #:उपयोगकर्ता द्वारा परिभाषित प्रकार को ओरेकल संग्रहीत प्रक्रिया में पास करें

  4. कैसे पता करें कि स्थापित Oracle क्लाइंट 32 बिट या 64 बिट है?

  5. Oracle:एक सबक्वेरी में कई परिणामों को एक अल्पविराम से अलग किए गए मान में संयोजित करें