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

ORA-30926 - मर्ज राज्य

@zaratustra के स्पष्टीकरण के अलावा, आपका मर्ज fn सेट करने का भी प्रयास कर रहा है और ln उसी name . के लिए value तो यह वह परिणाम नहीं देगा जो आप चाहते हैं यहां तक ​​​​कि यह भी काम करता है। और आप fn का उपयोग नहीं कर सकते या ln using . में खंड के रूप में आप उन्हें अद्यतन करने का प्रयास कर रहे हैं।

अगर आपका name_test तालिका में प्राथमिक कुंजी (या कम से कम अद्वितीय) कॉलम था तो आप उसे मर्ज में शामिल कर सकते थे, लेकिन आप अभी भी केवल fn को सही ढंग से अपडेट करने में सक्षम होंगे या ln एक पास में मूल्य।

मुझे यकीन नहीं है कि आप एक साधारण अपडेट क्यों नहीं कर रहे हैं:

update name_test nt
set fn = (select td.name from temp_distinct td where td.fn = nt.fn),
  ln = (select td.name from temp_distinct td where td.fn = nt.ln);

8 rows updated.

select * from name_test;

FN    LN  
----- -----
Mich  Steve 
Mich  Phil  
Mark  Dave  
Mich  Phil  
Mich  Dave  
Phil  John  
Steve Dean  
Steve Phil  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में मिलीसेकंड में टाइमस्टैम्प के बीच अंतर

  2. Oracle 12.2 - NOPARTITION सुविधा का प्रतिस्थापन

  3. एसक्यूएल टेबल निर्माण के दौरान बाधाएं पैदा करने का कोई और तरीका है?

  4. रीयल टाइम में PL/SQL आउटपुट प्राप्त करें

  5. पसंद के साथ गतिशील पैरामीटरयुक्त क्वेरी