sql >> Databasteknik >  >> RDS >> Oracle

Oracle MERGE-satsfel (ORA-30926)

Det första (och mest uppenbara) svaret är att rensa upp data så att du inte har dubbletter. Det verkar troligt att exempeldatan du angav är resultatet av en bugg.

När det gäller merge uttalande, om data faktiskt är rent duplicerade kan du bara använda distinct :

MERGE INTO maintable pr
USING      (SELECT DISTINCT contract,
                            membertype,
                            address1,
                            city,
                            state,
                            zipcode,
                            countrycode
            FROM   incrementaltable pra
            WHERE  pra.membertype = 'Parent')
ON         (pr.contract = pra.contract)
WHEN MATCHED THEN
   UPDATE SET pr.address1 = pra.address1,
              pr.city = pra.city,
              pr.state = pra.sate,
              pr.zipcode = pra.zipcode,
              pr.countrycode = pra.countrycode
      WHERE      address1 IS NULL AND pr.membertype <> 'Parent'



  1. Hur mappar man tidsstämpelkolumnen till JPA-typ?

  2. Infoga i MySQL-databas med jQuery och PHP

  3. Hur använder du MySql IN-satsen

  4. Infoga fråga i Oracle:Ogiltigt tabellnamn