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

Oracle फ़ंक्शन से RefCursor कैसे वापस करें?

मुझे लगता है कि आप sqlCom.ExecuteNonQuery(); . को याद कर रहे हैं

साथ ही, दोहरी से func_test(7) चुनें; . चलाने के बजाय फ़ंक्शन को चलाने और परम में पास करने के लिए इसे स्विच करने देता है

  OracleConnection oracleCon = new OracleConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);


  // Set the command

  string anonymous_block = "begin " +
                              "  :refcursor1 := func_test(7) ;" +
                              "end;";  
 //fill in your function and variables via the above example
  OracleCommand sqlCom= con.CreateCommand();
  sqlCom.CommandText = anonymous_block;

  // Bind 
  sqlCom.Parameters.Add("refcursor1", OracleDbType.RefCursor);
  sqlCom.Parameters[0].Direction = ParameterDirection.ReturnValue;

  try 
  {
    // Execute command; Have the parameters populated
    sqlCom.ExecuteNonQuery();

    // Create the OracleDataAdapter
    OracleDataAdapter da = new OracleDataAdapter(sqlCom);

    // Populate a DataSet with refcursor1.
    DataSet ds = new DataSet();
    da.Fill(ds, "refcursor1", (OracleRefCursor)(sqlCom.Parameters["refcursor1"].Value));

    // Print out the field count the REF Cursor
    Console.WriteLine("Field count: " + ds.Tables["refcursor1"].Columns.Count);
  }
  catch (Exception e)
  {
    Console.WriteLine("Error: {0}", e.Message);
  }
  finally
  {
    // Dispose OracleCommand object
    cmd.Dispose();

    // Close and Dispose OracleConnection object
    con.Close();
    con.Dispose();}

यह उदाहरण ओडीपी पर आधारित है जिसे @ %ora_home%\Client_1\ODP.NET\samples\RefCursor\Sample5.csproj

पाया जा सकता है

यदि आप प्रत्येक खरीद/फ़ंक्शन कॉल के लिए कस्टम निर्मित परम संग्रह से बचना चाहते हैं (बेहतर या खराब!) यह तकनीक। यहाँ एक अच्छा ब्लॉग है (मार्क विलियम्स के अलावा कोई नहीं) इस तकनीक को दिखा रहा है।http://oradim.blogspot.com/2007/04/odpnet-tip-anonymous-plsql-and.html




  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. SQLcl का उपयोग करते समय Oracle क्वेरी परिणामों को JSON फ़ाइल में कैसे निर्यात करें

  3. ORA-12514 TNS:श्रोता वर्तमान में कनेक्ट डिस्क्रिप्टर में अनुरोधित सेवा के बारे में नहीं जानता है

  4. Oracle में REPLACE () फ़ंक्शन

  5. अपरिभाषित फ़ंक्शन पर कॉल करें oci_connect ()