DECLARE
x_warn_ee VARCHAR2(1);
p_effective_date DATE;
CURSOR cur_people IS
SELECT * FROM per_all_people_f;
BEGIN
FOR rec_people IN cur_people LOOP
BEGIN
hr_change_start_date_api.update_start_date(p_validate => FALSE,
p_person_id => rec_people.person_id,
p_old_start_date => rec_people.effective_start_date,
p_new_start_date => to_date('2013/01/01',
'yyyy/mm/dd'),
p_update_type => 'E',
p_applicant_number => NULL,
p_warn_ee => x_warn_ee);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('person_id : ' || rec_people.person_id);
dbms_output.put_line(SQLERRM);
dbms_output.put_line('===============================');
END;
END LOOP;
END;
若员工之间从属关系:同时更新上属和下属时,更新上属时会报“ORA-20001: 此日期的分配主管不存在。”所以建议根据从属关系的层数N,执行上述过程N次。