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

विभाजित टेबल ऑरैकल को अपडेट कर रहा है

आप किस समस्या को हल करने की कोशिश कर रहे हैं? अलग से चलाने का कोई मतलब नहीं है UPDATE लूप में प्रत्येक विभाजन के विरुद्ध कथन। यदि आप वास्तव में तालिका में प्रत्येक पंक्ति को अपडेट करना चाहते हैं जहां ab = 'c' , बस एक ही UPDATE जारी करें बयान

UPDATE cdr_data cdt
   SET a = 'B'
 WHERE ab = 'c'

संभावित रूप से PARALLEL . के साथ संकेत जो Oracle को समानांतर में कई विभाजनों को अद्यतन करने की अनुमति देगा।

यदि आप वास्तव में, वास्तव में प्रत्येक विभाजन को स्वतंत्र रूप से अद्यतन करना चाहते हैं, तो विभाजन कुंजियों के आधार पर ऐसा करना अधिक समझ में आता है। उदाहरण के लिए, यदि आपकी तालिका में दिनांक के आधार पर दैनिक विभाजन हैं

FOR i IN 1 .. <<number of daily partitions>>
LOOP
  UPDATE cdr_data cdt
     SET a = 'B'
   WHERE ab = 'c'
     AND partition_key = <<minimum date>> + i;
END LOOP;

partition( <<partition name>> ) . का उपयोग करना वाक्यविन्यास एक पूर्ण अंतिम उपाय है। यदि आप वास्तव में उस पथ पर जाने के लिए दृढ़ हैं, तो आपको गतिशील SQL का उपयोग करना होगा, लूप में SQL कथन का निर्माण करना होगा और EXECUTE IMMEDIATE का उपयोग करना होगा। या dbms_sql इसे निष्पादित करने के लिए।



  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. शर्त पूरी होने तक पंक्तियों का चयन करें

  3. Oracle ड्रॉप टेबल यदि विकल्प मौजूद है

  4. SQLAlchemy का उपयोग करके Oracle डेटाबेस से कनेक्ट करना

  5. ऑरैकल में किसी उपयोगकर्ता से सभी विशेषाधिकार कैसे दिखाएं?