Oracle - PL/SQL ayuda porfa

 
Vista:

PL/SQL ayuda porfa

Publicado por Pablo (1 intervención) el 22/07/2010 11:18:40
Ayuda porfavor

La bse de datos
http://i30.tinypic.com/rjfey1.jpg


Necesito crear
*Un trigger que actualize el numero de depto_num_empleados en la tabla departamento.
*Un trigger que asigne el id_depto de venta, con el ip_depto al cual el empleado pertenece.
*Un procedimiento o funcion que determine el monto total de ventas de un empleado (utilizando corsor para ello)
*Un procedimiento o error que genere un error emp_mayor(exception) cuando un departamento tenga asignado un empleado mayor de 50 años.

de ante manos mil gracias...

Tengo esta pero no esta del todo buena
*Un procedimiento o funcion que determine el monto total de ventas de un empleado (utilizando corsor para ello)
Código:

create function xxx (emp_rut in number) return number is
i_rut number;
cursor nom_curs is select ven_monto from ventas;
reg_monto%rowtype;
begin
open nom_curs;
loop
fetch emp_rut in venta
insert into venta(id_venta, cli_rut, emp_rut, ven_fecha, ven_monto)
values(id_venta, cli_rut );
cose nom_curs
end loop
end;


*Un procedimiento o error que genere un error emp_mayor(exception) cuando un departamento tenga asignado un empleado mayor de 50 años.
Código:

create function yyy (rut_emp date) return number is
iemp_edad number;
emp_mayor exception;
cursor nico is
select emp_fnac from empleado;
reg_edad%rowtype;
begin
open nico;
loop
fetch nico into reg_edad;
if iemp_edad>50;
raise emp_mayor;
end if;
end loop;
exeception
when emp_mayor then
dbms_output.put_line('mayor que 50');
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PL/SQL ayuda porfa

Publicado por Patricia Dávila (3 intervenciones) el 24/11/2010 00:14:51
Hola Pablo, te comento que el ultimo caso lo he resuelto de la siguiente manera.

*Un procedimiento o error que genere un error emp_mayor(exception) cuando un departamento tenga asignado un empleado mayor de 50 años.
Código:

- Para saber la edad de una persona tienes que restar la fecha de nacimiento con la fecha actual, de esa forma podrás saber la edad exacta.

create procedure (rut_emp date) is
emp_mayor exception;
cursor nico is
select to_char(sysdate,’yyyy’) – to_char(emp_fnac,’yyyy’) from empleado;
reg_edad%rowtype;
begin
open nico;
loop
fetch nico into reg_edad;
exit when nico%notfound;
if iemp_edad>50 then
raise emp_mayor;
end if;
end loop;
exception
when emp_mayor then
dbms_output.put_line('mayor que 50');
end;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar