Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kesalahan pernyataan Oracle MERGE (ORA-30926)

Jawaban pertama (dan paling jelas) adalah membersihkan data sehingga Anda tidak memiliki duplikat. Sepertinya data sampel yang Anda berikan adalah hasil dari bug.

Adapun merge pernyataan, jika data benar-benar murni digandakan, Anda bisa menggunakan 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. Bagaimana cara menggunakan pengenal yang dikutip untuk kombinasi nama pengguna + tabel di Oracle?

  2. Cara terbaik untuk bergabung dengan tabel induk dan anak

  3. Oracle sql MERGE INTO dengan satu klausa where

  4. Pemicu Oracle setelah memasukkan atau menghapus

  5. Cara mengakses Oracle DB di VirtualBox dari Host (windows)