Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consulta SQL com esclarecimento ON DUPLICATE KEY UPDATE necessário


O Oracle não suporta o ON DUPLICATE KEY UPDATE sintaxe. Isso parece ser uma sintaxe específica do MySQL.

Muito provavelmente, você parece querer um MERGE declaração
MERGE INTO table1 t1
  USING (SELECT col1, col2, col3 
           FROM table2) ss
     ON (t1.col1 = ss.col1) -- whatever the key is
   WHEN MATCHED THEN
     UPDATE SET t1.col1 = ss.col1,
                t1.col2 = ss.col2,
                t1.col3 = ss.col3
   WHEN NOT MATCHED THEN 
     INSERT( t1.col1, t1.col2, t1.col3 )
       VALUES( ss.col1, ss.col2, ss.col3 )