Oracle
 sql >> база данни >  >> RDS >> Oracle

Грешка в израза на Oracle MERGE (ORA-30926)

Първият (и най-очевиден) отговор е да почистите данните, така че да нямате дубликати. Изглежда вероятно предоставените от вас примерни данни да са резултат от грешка.

Що се отнася до merge оператор, ако данните всъщност са чисто дублирани, можете просто да използвате 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. Оптимизиране на оракул заявка

  2. Използване на свързващи променливи с динамична клауза SELECT INTO в PL/SQL

  3. Намерете дали дадена колона има уникално ограничение

  4. Checker Run

  5. Почистване на колона за дата на Oracle