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

यदि पंक्ति मौजूद नहीं है तो Oracle सम्मिलित करें

<ब्लॉककोट>

जब मैं इसे चलाता हूं तो मुझे "कीवर्ड में अनुपलब्ध" त्रुटि मिलती है।

क्योंकि ओरेकल में इग्नोर एक कीवर्ड नहीं है। वह है MySQL सिंटैक्स।

आप क्या कर सकते हैं MERGE का उपयोग करें।

merge into table1 t1
    using (select 'value1' as value1 ,value2 
           from table2 
           where table2.type = 'ok' ) t2
    on ( t1.value1 = t2.value1)
when not matched then
   insert values (t2.value1, t2.value2)
/

Oracle 10g से हम दोनों शाखाओं को संभाले बिना मर्ज का उपयोग कर सकते हैं। 9i में हमें "डमी" MATCHED शाखा का उपयोग करना था।

अधिक प्राचीन संस्करणों में या तो एकमात्र विकल्प थे:

  1. एक INSERT (या एक उप-क्वेरी में) जारी करने से पहले पंक्ति के अस्तित्व के लिए परीक्षण करें;
  2. INSERT को निष्पादित करने और किसी भी परिणामी DUP_VAL_ON_INDEX त्रुटि को संभालने के लिए PL/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. वास्तविक Oracle SQL स्टेटमेंट को कैसे देखें जिसे निष्पादित किया जा रहा है

  2. सॉकेट से पढ़ने के लिए कोई और डेटा नहीं

  3. जीआई 12.1.0.2 और सेगमेंटेशन फॉल्ट को संकलित नहीं कर सकता

  4. सी # द्वारा ऑरैकल प्रक्रिया में पूर्णांक सरणी पास करें

  5. हमारे Oracle ODBC ड्राइवर के साथ SQL सर्वर का उपयोग करते समय यदि आपको गलत बुकमार्क क्रमसूचक त्रुटि मिलती है तो क्या करें?