Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Błąd instrukcji MERGE Oracle (ORA-30926)

Pierwszą (i najbardziej oczywistą) odpowiedzią jest oczyszczenie danych, aby nie było duplikatów. Wydaje się prawdopodobne, że podane przez Ciebie przykładowe dane są wynikiem błędu.

Co do merge oświadczenie, jeśli dane są faktycznie zduplikowane, możesz po prostu użyć 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd prawego nawiasu ORA-00907 w Oracle

  2. Połączenie JDBC z bazą danych Oracle przy użyciu certyfikatu TLS

  3. Czy mogę skopiować pseudo-rekordy :OLD i :NEW do/do procedury składowanej Oracle?

  4. ORA-02019:nie znaleziono opisu połączenia do zdalnej bazy danych

  5. PL/SQL:czy istnieje instrukcja, aby całkowicie zatrzymać wykonywanie skryptu?