Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procedimientos
---crear un procedimiento donde muestre los nombres de los gerentes y el nombre de cada departamento
donde estan encargados
exec depart;
----2 crear un procedimiento dado el numero de departamento nos mostrara el nombre del
departamento
exec nom_depart(10);
--- 3 crear un procedimiento que muestre los empleados que su salario igual o superior a 8000
create or replace procedure lista
is
begin
for i in (select cod_em, nomb_emple
from emplea
where salario>=8000 )
loop
dbms_output.put_line (i.nomb_emple);
end loop;
end;
exec lista ;
--- 4 crear un procedimiento donde muestre los empleados que trabajan en el departamento de finanzas
begin
for i in (SELECT cod_em ,nomb_emple ,nom_depta
ON E.COD_DE =D.COD_DE
where nom_depta='finanzas' )
loop
dbms_output.put_line ('nombre ' || ' :' ||i.nomb_emple || ' :' ||'departamento ' || ' :' ||i.nom_depta);
end loop;
end;
exec departamentos
---5 crear un procedimiento que se reciba como parametros de entrada el numero de departamentoy se
muestre la cantidad de empleados que trabajan en el departamento
declare
v_depno emplea.cod_de%type:=&depid;
v_cant int;
begin
p_cant (v_depno, v_cant);
dbms_output.put_line ('Depto:' || ' :' ||' total de empleados: ' || v_cant );
end;
---6
create
or replace procedure Todayls
as
begin dbms_output.put_line ('hoy es '|| to_char (Sysdate , 'DD/MM/YYYY'));
end Todayls;
--8
----crear un procedimeinto que reciba como parametro de entrada el id del empleado y muestre los
datos del empleado
---el nombre, apellido año de contratacion, si el id del empleado no existe mostrar "no existe el
empledo"
create or replace busca_emp (idemp emplea.cod_em%type) is
v_nom varchar2 (50);
v_sal emplea.salario%type;
v_fecha emplea.fecha_contr
begin
select nomb_emple || ' :' ||apell_empl, salario, fecha_contr into v_nom, v_sal, v_fecha
from emplea
where cod_em =i.demp;
dbms_output.put_line ('Id:' || idemp || chr(10) || 'fecha concemtracion:' || v_fecha);
exception
when no_data_found then
dbms_output.put_line ('no existe el empleado');
end;
Funciones
----- 1 crear una funcion donde califique los salarios de los empleados si esta en rango de
--2000 a 4000 deb mostrar salario medio
--4000 a 8000 debe mostrar salario bueno
--- 9000 a 10000 debe mostrar salario muy bueno
2 crear un funcion que reciba parametro de entrada el codigo donde el grupo que pertenece el
producto y que nos devuelva
---si el grupo esta en uso sera "con producto " y si el gurpo no tiene nada de producto dira "sin
producto"
create or replace function cal_pro(
depno verpro.cod_ar%type
) return varchar2 is
v_c int;
begin
select count(*) into v_c
from verpro
where cod_ar=depno;
if v_c>0 then
return 'con producto ';
else
return 'sin producto ';
end if ;
end;
--- 3 crear una funcion dado el codigo del proveedor nos muestre el nombre del proveedo y el producto
que se adquirio
create or replace function de_pro (
cod_prove number)
return varchar2
is
v_re varchar2(40);
begin
select nom_pro || ' ' || nombre_producto into v_re
from pro
where cod_prov=cod_prove;
return v_re;
end de_pro;
----4 crear una funcion donde se aumente los precios de los productos en un 20 %
create or replace function incremento (v_pre number)
return number
is
begin
return v_pre+(v_pre*0.2);
end;
-----6 crear una funcion que dado que el codigo del gerente nos devuelva los nombres de los empleados
que estan acargo de dicho gerente
--7 crear una funcion dado el codigo de la factura mostrar en nombre del cliente y producto que compro
---- 8 crear una funcio donde ingresando el codigo del producto muestre el nombre del producto y el
grupo donde pertenece
create or replace function datos_pr(
cod_are number)
return varchar2
is
nomgrup varchar2(40);
begin
select nomb|| ' ' || area1 into nomgrup
from verpro v join area a on v.COD_AR = a.COD_AR
where cod_pro= cod_are;
return nomgrup;
end datos_pr;
-- 10 crear una funcion que reciba como dato de entrada el nro de departamento y una varible que
especificara el salario que se requiere retornar
--(B: basalrio bajo
--A salario medio
--M media salarial
--T total salario )
--esto reornara salario mayores, menores, media, totales de cada departemento que se ingresa