Merge statement - WHEN NOT MATCHED THEN UPDATE
Hi,
I am trying to use a Merge Statement. The requirement is when there is match I need to change the names in table-1 to lower case names of table-2. Else, I need to translate the existing names in table-1.
I wrote the below query to do that. But I am getting an error as mentioned below.
I guess it is expecting INSERT statement after WHEN NOT MATCHED.
Can someone please help me out?
MERGE INTO employee_temp e USING employee_names s ON (e.employee_nbr = s.employee_nbr)
WHEN MATCHED THEN
UPDATE
SET e.last_nme = lower(s.last_nme) ,
e.first_nme = lower(s.first_nme) ,
e.middle_initial_txt = lower(s.middle_initial_txt),
e.full_nme = lower(trim(s.last_nme
||' '
|| s.first_nme
||' '
|| s.middle_initial_txt))
WHEN NOT MATCHED THEN
UPDATE
SET e.last_nme = TRANSLATE(e.last_nme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'QUHLZAYTMVRPOWXDKIBFSJGCEN') ,
e.first_nme = TRANSLATE(e.first_nme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'QUHLZAYTMVRPOWXDKIBFSJGCEN') ,
e.middle_initial_txt = TRANSLATE(e.middle_initial_txt, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'QUHLZAYTMVRPOWXDKIBFSJGCEN'),
e.full_nme = TRANSLATE((trim(e.last_nme
||' '
|| e.first_nme
||' '
|| e.middle_initial_txt)), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'QUHLZAYTMVRPOWXDKIBFSJGCEN')
Error at Command Line:13 Column:3
Error report:
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
*Cause:
*Action: