合并 - Oracle 错误
Merge - Orcle error
在执行下面的代码时,出现错误 "Missing ON keyword" 但我已经写了 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);
来自这一行:
) EMPLOYEES p
您正在将 using 子句的别名设置为 EMPLOYEE
,但您正试图将 that 重新别名为 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)
...
在执行下面的代码时,出现错误 "Missing ON keyword" 但我已经写了 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);
来自这一行:
) EMPLOYEES p
您正在将 using 子句的别名设置为 EMPLOYEE
,但您正试图将 that 重新别名为 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)
...