Oracle no es compatible con ON DUPLICATE KEY UPDATE
sintaxis. Esa parece ser una sintaxis específica de MySQL.
Lo más probable es que parezca querer un MERGE
declaración
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 )