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

.Net . के साथ Oracle उन्नत कतार

मैं सर्वोत्तम प्रथाओं में आपकी सहायता नहीं कर सकता, लेकिन मैं यूडीटी कतार के साथ आपकी सहायता कर सकता हूं। कतार से निपटने से पहले, आपको डेटाबेस से अपने सी # प्रोजेक्ट में कस्टम प्रकार उत्पन्न करने की आवश्यकता है। मान लें कि आपके पास विजुअल स्टूडियो और ओडीपी.नेट स्थापित है, आपको बस सर्वर एक्सप्लोरर के माध्यम से डेटाबेस से कनेक्ट करने की जरूरत है, अपने यूडीटी का पता लगाएं, राइट क्लिक करें और "कस्टम क्लास जेनरेट करें ..." चुनें। ये कक्षाएं सीधे आपके यूडीटी पर मैप करती हैं और उपयोग की जाती हैं हटाई गई जानकारी संग्रहीत करने के लिए।

यहां उस कोड का एक उदाहरण दिया गया है जिसका उपयोग आप किसी संदेश को कतारबद्ध करने के लिए करेंगे:

private void main(string[] args)
{
    string _connstring = "Data Source=host/DB;User
    Id=USER;Password=PASSWORD1;";

        OracleConnection _connObj = new OracleConnection(_connstring);

        // Create a new queue object
        OracleAQQueue _queueObj = new OracleAQQueue("UDT_NAME", _connObj);

        _connObj.Open();

        OracleTransaction _txn = _connObj.BeginTransaction();

        // Set the payload type to your UDT
        _queueObj.MessageType = OracleAQMessageType.Udt;
        _queueObj.UdtTypeName = "UDT_NAME";

        // Create a new message object
        OracleAQMessage _msg = new OracleAQMessage();

        // Create an instance of JobClass and pass it in as the payload for the
        // message
        UDT_CUSTOM_CLASS _custClass = new UDT_CUSTOM_CLASS();
        // Load up all of the properties of custClass
        custClass.CustString = "Custom String";
        custClass.CustInt = 5;

        _msg.Payload = custClass;

        // Enqueue the message
        _queueObj.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
        _queueObj.Enqueue(_msg);

        _txn.Commit();
        _queueObj.Dispose();
        _connObj.Close();
        _connObj.Dispose();
        _connObj = null;
}

यह dequeue की एक समान प्रक्रिया है:

private void main(string[] args)
{
    string _connstring = "Data Source=host/DB;User
    Id=USER;Password=PASSWORD1;";

    OracleConnection _connObj = new OracleConnection(_connstring);

    // Create a new queue object
    OracleAQQueue _queueObj = new OracleAQQueue("UDT_NAME", _connObj);

    // Set the payload type to your UDT
    _queueObj.MessageType = OracleAQMessageType.Udt;
    _queueObj.UdtTypeName = "UDT_NAME";

    _connObj.Open();

    OracleTransaction _txn = _connObj.BeginTransaction();

    // Dequeue the message.
    _queueObj.DequeueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
    _queueObj.DequeueOptions.Wait = 10;
    OracleAQMessage _deqMsg = _queueObj.Dequeue();

    UDT_CUSTOM_CLASS data = (UDT_CUSTOM_CLASS)_deqMsg.Payload;

    // At this point, you have the data and can do whatever you need to do with it

    _txn.Commit();
    _queueObj.Dispose();
    _connObj.Close();
    _connObj.Dispose();
    _connObj = null;

}

यह एक "सरल" उदाहरण है। मैंने उनमें से अधिकांश को एड ज़ेहू द्वारा प्रो ओडीपी.नेट से ओरेकल डाटाबेस 11 जी के लिए निकाला। यह एक उत्कृष्ट पुस्तक है और मैं दृढ़ता से अनुशंसा करता हूं कि आप OPD.NET की सभी चीजों के बारे में बेहतर ढंग से समझ सकें। आप ई-पुस्तक यहाँ से खरीद सकते हैं:http://apress.com/book/view/9781430228202 . यदि आप कूपन कोड MACWORLDOC दर्ज करते हैं, तो आप $21.00 में eBook प्राप्त कर सकते हैं। यह ऑफर केवल उस ईबुक के लिए अच्छा है जो पासवर्ड से सुरक्षित पीडीएफ फॉर्मेट में आता है। मुझे आशा है कि यह मदद करता है!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle पैकेज Crontab के अंदर काम नहीं कर रहा है

  2. जावा में कनेक्शन स्ट्रिंग पैरामीटर रखने के लिए कॉन्फ़िग फ़ाइल

  3. Oracle JDBC आंतरायिक कनेक्शन समस्या

  4. ओरेकल में अल्पविराम से अलग स्ट्रिंग को विभाजित करना काम नहीं कर रहा है

  5. फ़ंक्शन से परिणाम लौटाएं