merge statement query

31 views Asked by At
MERGE INTO TempEmployee TARGET
USING Consultant SOURCE
ON (TARGET.EmpId = SOURCE.EmpId)
WHEN MATCHED THEN 
    UPDATE SET TARGET.FirstName = SOURCE.FirstName, TARGET.LastName = SOURCE.LastName
WHEN NOT MATCHED THEN
  INSERT INTO TempEmployee(EmpId, FirstName, LastName)
  VALUES(SOURCE.EmpId, SOURCE.FirstName, SOURCE.LastName);

Error starting at line 1 in command

Error at Command Line : 7 Column : 10
Error report -
SQL Error: ORA-00926: missing VALUES keyword
00926. 00000 - "missing VALUES keyword"
*Cause:
*Action:

1

There are 1 answers

0
Littlefoot On

Shortly: wrong syntax. Should be

MERGE INTO tempemployee target
     USING consultant source
        ON (target.empid = source.empid)
WHEN MATCHED
THEN
   UPDATE SET target.firstname = source.firstname, target.lastname = source.lastname
WHEN NOT MATCHED
THEN
   INSERT     (empid, firstname, lastname)
       VALUES (source.empid, source.firstname, source.lastname);

See merge documentation.