merge into emp_merge m
using
(select 1 employee_id, -- sequence not allowed here
'Hofstetter' last_name,
'IT_PROG' job_id,
10001 salary,
sysdate hire_date
from dual) e
on (m.last_name = e.last_name)
when matched then
update set salary = e.salary
when not matched then
insert (
employee_id,
last_name,
job_id,
salary,
hire_date
) values (
seq.nextval,
e.last_name,
e.job_id,
e.salary,
e.hire_date
)
merge into emp_copy c
using (select 1 from dual)
-- using (select 'bla' fn, 'bli' ln from dual) e
-- using ( select first_name, last_name from emp_copy )
on (:b_last_name = c.last_name and :b_first_name = c.first_name)
when matched then
update set salary = :b_salary,
email = :b_email,
hire_date = :b_hire_date,
job_id = :b_job_id ,
department_id = :b_department_id
when not matched THEN
insert (
employee_id,
first_name,
last_name,
email,
hire_date,
job_id,
department_id,
salary
) values (
employees_seq.nextval,
:b_first_name,
:b_last_name,
:b_email,
:b_hire_date,
:b_job_id,
:b_department_id,
:b_salary
)
merge into accountants
using (select 1 from dual)
on (last_name = :ln and first_name = :fn)
when matched then update set salary = :salary
when not matched then
insert
(first_name,
last_name,
salary)
values (
:fn,
:ln,
:salary)