MANAGE EMPLOYEE PACKAGE
create package manage_employee as -- package specification
function hire_emp (name varchar2, job varchar2, mgr number, hiredate
date,
sal number, comm number default 0, deptno number)
return number;
procedure fire_emp (emp_id number);
procedure raise_sal (emp_id number, sal_incr number);
end manage_employee;
create package body manage_employee as
function hire_emp (name varchar2, job varchar2, mgr number, hiredate
date,
sal number, comm number default 0, deptno number)
return number is
-- Insert a new employee with a new employee Id
new_empno number(10);
begin
select emp_sequence.nextval into new_empno from dual;
insert into emp values(new_empno, name, job, mgr, hiredate,
sal, comm, deptno);
return new_empno;
end hire_emp;
procedure fire_emp(emp_id number) is
-- deletes an employee from the table EMP
begin
delete from emp where empno = emp_id;
if SQL%NOTFOUND then -- delete statement referred to invalid emp_id
raise_application_error(-20011, 'Employee with Id ' ||
to_char(emp_id) || ' does not exist.');
end if;
end fire_emp;
procedure raise_sal(emp_id number, sal_incr number) is
-- modify the salary of a given employee
begin
update emp set sal = sal + sal_incr
where empno = emp_id;
if SQL%NOTFOUND then
raise_application_error(-20012, 'Employee with Id ' ||
to_char(emp_id) || ' does not exist');
end if;
end raise_sal;
end manage_employee;