sql >> Database >  >> RDS >> Oracle

Oracle MERGE-instructiefout (ORA-30926)

Het eerste (en meest voor de hand liggende) antwoord is om de gegevens op te schonen, zodat je geen dubbele gegevens hebt. Het lijkt waarschijnlijk dat de voorbeeldgegevens die je hebt verstrekt het resultaat zijn van een bug.

Wat betreft de merge statement, als de gegevens echt puur gedupliceerd zijn, kun je gewoon distinct . gebruiken :

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. Hoe te parseren in PHP en opslaan in database?

  2. If-voorwaarde gebruiken in waar-clausule

  3. Hoe te controleren of een archief dat door pg_dump archive is geproduceerd, in orde en geldig is?

  4. PHP MySQL-insert werkt niet