执行以下代码时,收到错误"缺少ON关键字" 但我已经写过ON子句了。请协助解决问题。
merge into emp_temp s
using (select p.employee_id, p.salary, p.last_name,p.email, p.Hire_date,
p.job_id from employees p
minus
select s.employee_id, s.salary, s.last_name,s.email, s.Hire_date,
s.job_id from emp_temp s
) EMPLOYEES p
ON (s.employee_id = p.employee_id)
when matched then
update set s.salary = p.salary
when not matched then
insert
(s.employee_id , s.salary,s.last_name,s.email,s.Hire_date, s.job_id)
values
(p.employee_id, p.salary, p.last_name,p.email, p.Hire_date, p.job_id);
答案 0 :(得分:1)
它来自这条线:
) EMPLOYEES p
您将using子句的别名设置为EMPLOYEE
,但您尝试将 重新别名为p
。该错误并不意味着您根本没有ON
子句,只是它不是解析器期望看到它的位置。
由于您稍后会引用p
,您只需要这个别名:
...
minus
select s.employee_id, s.salary, s.last_name,s.email, s.Hire_date,
s.job_id from emp_temp s
) p
ON (s.employee_id = p.employee_id)
...