Hola,
Necesito una ayudita.
Tengo que hacer un procedimiento regulacion_salarial, que augmente un 10% el salario al departamento Administracion y reste un 5% al departamento Sales y le ponga como comission_pct un 0.25 y algo mas. Y tengo esto:
CREATE OR REPLACE PROCEDURE regulacion_salarial
(cod_emp IN employees.employee_id%TYPE,
sal OUT employees.salary%TYPE)
IS
dept departments.department_name%TYPE;
comision employees.commission_pct%TYPE;
BEGIN
SELECT emp.salary, dept.department_name
INTO sal, dept
FROM employees emp right join departments dept ON emp.department_id=dept.department_id
WHERE emp.employee_id = cod_emp;
IF dept = 'Administration' THEN
sal := sal*1.10;
END IF;
IF dept = 'Sales' THEN
sal := sal-(sal*0.05);
comision :=0 .25;
ELSE
sal := sal+100;
END IF;
END ;
Tengo un problema con las excepciones. Que tengo que sacar 2 mensajes uno para cuando el departamento sea nulo y otro que avise que no se puede augmentar mas sueldo que el que tiene el jefe. No tengo ni idea de como hacerlo:
CREATE OR REPLACE PROCEDURE regulacion_salarial
(cod_emp IN employees.employee_id%TYPE,
sal OUT employees.salary%TYPE)
IS
id_dept employees.department_id%TYPE;
dept departments.department_name%TYPE;
comision employees.commission_pct%TYPE;
BEGIN
SELECT emp.salary, dept.department_name
INTO sal, dept
FROM employees emp right join departments dept ON emp.department_id=dept.department_id
WHERE emp.employee_id = cod_emp;
IF dept = 'Administration' THEN
sal:=sal*1.10;
END IF;
IF dept='Sales' THEN
sal:=sal-(sal*0.05);
comision:=0.25;
ELSE
sal:=sal+100;
END IF;
IF id_dept IS NULL THEN
RAISE dept_equivocado;
END IF;
EXCEPTIONS
WHEN dept_equivocado THEN
END ;
No se como seguir todo lo que pruebo da error. Necesitaria que me ayudarias. Gracias de antemano.