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

सी # से आउट-पैरामीटर के रूप में रेफ कर्सर के साथ ओरेकल फ़ंक्शन को कैसे कॉल करें?

आप निश्चित रूप से कर सकते हैं। सावधान रहने के लिए कुछ गठिया हैं, लेकिन यहां एक परीक्षण मामला है

create or replace function testodpRefCursor(
                  uniqueId    IN NUMBER 
                 ,resultItems OUT NOCOPY SYS_REFCURSOR) RETURN NUMBER
                 IS

 BEGIN
      OPEN resultItems for select level from dual  connect by level < uniqueId ;
      return 1;
 END testodpRefCursor;
  1. मैंने पाया है कि फंक्शन्स रिटर्न वैल्यू को सबसे पहले . के रूप में रखना पसंद करते हैं पैरामिन संग्रह
  2. BindByName डिफ़ॉल्ट रूप से FALSE है, इसलिए यह डिफ़ॉल्ट रूप से BIND BY POSITION

अन्यथा यह बिल्कुल सीधा है:

  OracleCommand cmd = new OracleCommand("TESTODPREFCURSOR", con);
  cmd.CommandType   = CommandType.StoredProcedure;
  cmd.BindByName = true;
  // Bind 


  OracleParameter oparam = cmd.Parameters.Add("ReturnValue", OracleDbType.Int64);
  oparam.Direction = ParameterDirection.ReturnValue ;       

  OracleParameter oparam0 = cmd.Parameters.Add("uniqueId", OracleDbType.Int64);
  oparam0.Value = 5 ;
  oparam0.Direction = ParameterDirection.Input;

  OracleParameter oparam1 = cmd.Parameters.Add("resultItems", OracleDbType.RefCursor);
  oparam1.Direction = ParameterDirection.Output;




  // Execute command
  OracleDataReader reader;
  try
  {
    reader = cmd.ExecuteReader();

    while(reader.Read() ){
        Console.WriteLine("level: {0}", reader.GetDecimal(0));  
    }

  } ...

अब अधिक नमूनों के लिए अपनी Oracle होम निर्देशिका में जाएं और ODP.NET में Ref कर्सर नमूने देखें।

उदाहरण के लिए:%oracle क्लाइंट होम%\odp.net\samples\4\RefCursor

एचटीएच




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपवाद सहेजें उदाहरण के साथ Oracle PL/SQL थोक संग्रह

  2. ऑरैकल टेबल या दृश्य अंदर संग्रहीत प्रक्रिया से मौजूद नहीं है

  3. एकाधिक डेटाबेस के अनुरूप ऑनलाइन SQL सिंटैक्स चेकर

  4. यदि कथन जहां खंड के भीतर है

  5. पीएलएसक्यूएल :नया और :पुराना