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

सी # में ओरेकल फ़ंक्शन से अनुक्रम वापसी तालिका से बाहर निकलने में त्रुटि जहां फ़ंक्शन SQL सर्वर पर dblink का उपयोग करता है

इसकी जांच में एक दिन से अधिक समय बिताने के बाद मुझे अपना प्रश्न पोस्ट करने के केवल 10 मिनट बाद उत्तर के लिए निर्देशित किया गया था। विशिष्ट!

जवाब यहां मिला - https://community.oracle.com/thread/659625 - और केवल लेन-देन में कॉलिंग कोड को लपेटना आवश्यक है। कार्य कोड इस तरह दिखता है:

using (var connection = new OracleConnection(connstring))
{
    connection.Open();

    using (var command = connection.CreateCommand())
    {
        // Start a local transaction
        using (var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted))
        {
            // Assign transaction object for a pending local transaction
            command.Transaction = transaction;
            command.CommandText = "FNC_AXA_APPTS";
            command.CommandType = CommandType.StoredProcedure;

            OracleParameter retVal = new OracleParameter("PRS", OracleDbType.RefCursor);
            retVal.Direction = ParameterDirection.ReturnValue;
            command.Parameters.Add(retVal);

            command.Parameters.Add(new OracleParameter("EG_PARAM", OracleDbType.Varchar2, 50)).Value = paramValue;

            command.ExecuteNonQuery();

            using (OracleDataReader reader = ((OracleRefCursor)command.Parameters["PRS"].Value).GetDataReader())
            {
                dt.Load(reader);
            }
        }
    }
}

समाधान के बारे में मेरी सीमित समझ यह है कि इसके बिना SQL सर्वर के अंत में एक लेन-देन किया जाता है जो .NET कोड को पास करने के बाद लौटा हुआ कर्सर अपने पुनरावृत्ति में विफल हो जाता है। अगर किसी के पास बेहतर स्पष्टीकरण है तो कृपया इस प्रश्न में जोड़ें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा, WRITE_DATA और WRITE_RAW_DATA के बीच UTL_SMTP अंतर

  2. रिमोट मशीन से Oracle एपेक्स एक्सेस करें

  3. sqlplus में त्रुटियां कैसे दिखाएं

  4. ऑरैकल पीएल/एसक्यूएल कर्सर में कॉलम के माध्यम से कैसे लूप करें?

  5. Oracle JDeveloper में जावा एप्लिकेशन बनाना, भाग 1