2010-02-25 16 views
7

मैं इस सरल उदाहरण मैं है काम कर पाने के लिए नहीं लगता है।ओरेकल मर्ज सम्मिलित नहीं करता

लेकिन अगर मौजूद नहीं है, यह डाला जाता है:

Affected rows: 0 
Time: 0.003ms 

मैं गलत क्या कर रहा हूँ पर कोई सुराग? मेरे लिए

+0

क्या उपकरण का प्रयोग कर रहे है कि प्रतिक्रिया करता है "प्रभावित पंक्तियों: 0 समय: 0.003ms"? –

+0

एक आश्चर्य है कि ओपी एक सत्र में प्रतिबद्धता के बिना विलय कर रहा है और दूसरे से पूछताछ कर रहा है। या क्या मौजूदा ऐप SQL% ROWCOUNT के एनालॉग से आउटपुट को सही ढंग से व्याख्या कर रहा है या नहीं। –

+0

क्या यह संभव है कि आपकी तालिका 'mytable' को वैध आईडी करने के लिए केवल' id' और 'name' से अधिक की आवश्यकता हो? –

उत्तर

8

काम करता है:

SQL> create table mytable (id varchar(3), name varchar(30)); 

Table created. 

SQL> MERGE INTO mytable mt 
    2 USING dual 
    3 ON (mt.id = 'AAA') 
    4 WHEN MATCHED THEN 
    5  UPDATE SET mt.name = 'updated' 
    6 WHEN NOT MATCHED THEN 
    7  INSERT (mt.id , mt.name) 
    8  VALUES ('AAA', 'Gooood'); 

1 row merged. 

SQL> select * from mytable; 

ID NAME 
--- ------------------------------ 
AAA Gooood 
+0

मुझे भी 10.2.0.4 पर। – DCookie

+0

मैं ओरेकल 9.2 का उपयोग करता हूं ... मैंने सुना है कि ओरेकल 10 पर मेर्ज फ़ंक्शन "बेहतर" है: - / – Jalil

संबंधित मुद्दे