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

ORA-30926:स्रोत तालिका में पंक्तियों का एक स्थिर सेट प्राप्त करने में असमर्थ

यह आमतौर पर USING क्लॉज में निर्दिष्ट क्वेरी में डुप्लिकेट के कारण होता है। इसका शायद मतलब है कि TABLE_A एक पैरेंट टेबल है और एक ही ROWID को कई बार लौटाया जाता है।

आप अपनी क्वेरी में DISTINCT का उपयोग करके समस्या को जल्दी से हल कर सकते हैं (वास्तव में, यदि 'Y' एक स्थिर मान है तो आपको इसे क्वेरी में डालने की भी आवश्यकता नहीं है)।

मान लें कि आपकी क्वेरी सही है (अपनी टेबल नहीं जानते) आप कुछ इस तरह कर सकते हैं:

  MERGE INTO table_1 a
      USING 
      (SELECT distinct ta.ROWID row_id
              FROM table_1 a ,table_2 b ,table_3 c
              WHERE a.mbr = c.mbr
              AND b.head = c.head
              AND b.type_of_action <> '6') src
              ON ( a.ROWID = src.row_id )
  WHEN MATCHED THEN UPDATE SET in_correct = 'Y';


  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. दिनांक डेटा प्रकार के लिए बराबर (=) बनाम LIKE

  3. Oracle डाटाबेस सुरक्षा - एन्क्रिप्शन और डिक्रिप्शन

  4. ओरेकल फॉर लूप सेलेक्ट स्टेटमेंट उदाहरण

  5. सीबीओ सांख्यिकी श्वेत पत्र