Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

ayuda pl/sql

Estas en el tema de ayuda pl/sql en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/06/2009, 02:18
 
Fecha de Ingreso: junio-2009
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
ayuda pl/sql

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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.