Está en la página 1de 7

Apellidos y Nombres: Zambrano Sanchez Alonso Hirbin

/* Procedimiento INSERT*/

CREATE OR REPLACE PROCEDURE insertar_empleado

(w_codigoempleado IN empleados.codigoempleado%TYPE,

w_nombre IN empleados.nombre%TYPE,

w_apellido1 IN empleados.apellido1%TYPE,

w_apellido2 IN empleados.apellido2%TYPE,

w_extension IN empleados.extension%TYPE,

w_email IN empleados.email%TYPE,

w_codigooficina IN empleados.codigooficina%TYPE,

w_codigojefe IN empleados.codigojefe%TYPE,

w_puesto IN empleados.puesto%TYPE)

IS

BEGIN

INSERT INTO empleados


(codigoempleado,nombre,apellido1,apellido2,extension,email,codigooficina,codigojefe,puesto
)

VALUES (w_codigoempleado, w_nombre,


w_apellido1,w_apellido2,w_extension,w_email,w_codigooficina,w_codigojefe,

w_puesto);

exception

when no_data_found then

dbms_output.put_line('Ocurrio un error!!!');

END;

EXECUTE insertar_empleado('33','Marco','Roque','Ruiz',2846,'marco_rr@gardening.com','TAL-
ES',3,'Representante Ventas');
/* Procedimiento UPDATE*/

create or replace PROCEDURE actualizar_empleado

(w_codigoempleado IN empleados.codigoempleado%TYPE,

w_nombre IN empleados.nombre%TYPE,

w_apellido1 IN empleados.apellido1%TYPE,

w_apellido2 IN empleados.apellido2%TYPE,

w_extension IN empleados.extension%TYPE,

w_email IN empleados.email%TYPE,

w_codigooficina IN empleados.codigooficina%TYPE,

w_codigojefe IN empleados.codigojefe%TYPE,

w_puesto IN empleados.puesto%TYPE)

IS

BEGIN

UPDATE empleados

set
nombre=w_nombre,apellido1=w_apellido1,apellido2=w_apellido2,extension=w_extension,em
ail=w_email,codigooficina=w_codigooficina,codigojefe=w_codigojefe,puesto=w_puesto

where codigoempleado=w_codigoempleado;

exception

WHEN dup_val_on_index THEN

dbms_output.put_line('El codigo ingresado NO EXISTE');

WHEN no_data_found then

dbms_output.put_line('No existen registros en la consulta generada');

WHEN OTHERS THEN

dbms_output.put_line('Ocurrio un error');

commit;

END;

--Para Actualizar Empleados

begin
actualizar_empleado (34,'Juan','Roque','Ruiz',2846,'marco_rr@gardening.com','TAL-
ES',3,'Representante Ventas');

end;

/* Procedimiento DELETE*/

CREATE OR REPLACE PROCEDURE ELIMINAR_empleado

(w_codigoempleado IN empleados.codigoempleado%TYPE,

w_nombre IN empleados.nombre%TYPE,

w_apellido1 IN empleados.apellido1%TYPE,

w_apellido2 IN empleados.apellido2%TYPE,

w_extension IN empleados.extension%TYPE,

w_email IN empleados.email%TYPE,

w_codigooficina IN empleados.codigooficina%TYPE,

w_codigojefe IN empleados.codigojefe%TYPE,

w_puesto IN empleados.puesto%TYPE)

IS

BEGIN

DELETE empleados

WHERE codigoempleado=w_codigoempleado AND

nombre=w_nombre AND apellido1=w_apellido1 AND apellido2=w_apellido2 AND


extension=w_extension AND email=w_email AND codigooficina=w_codigooficina

AND codigojefe=w_codigojefe AND puesto=w_puesto;

commit;

END;

set serveroutput on

--Para eliminar empleados

begin

ELIMINAR_empleado (33,'Juan','Roque','Ruiz',2846,'marco_rr@gardening.com','TAL-
ES',3,'Representante Ventas');

end;
/* Procedimiento SELECT*/
CREATE OR REPLACE PROCEDURE Seleccion_pedidos

cod_pedido IN pedidos.codigopedido%TYPE,/*entrada*/

fecha_pedido out pedidos.fechapedido%TYPE,/*dalida*/

fecha_esperada out pedidos.fechaesperada%TYPE,/*salida*/

fecha_entregada out pedidos.fechaentrega%TYPE/*salida*/

AS

BEGIN

SELECT fechapedido AS PEDIDO,fechaesperada AS ESPERA,fechaentrega AS ENTREGA

INTO fecha_pedido,fecha_esperada,fecha_entregada

FROM pedidos where pedidos.codigopedido = cod_pedido;

exception

when no_data_found then

dbms_output.put_line('Ocurrio un error!!!');

END;

/*--------LLamada del procedimiento*/

DECLARE

COD_PEDIDO pedidos.comentarios%TYPE;

fecha_pedido pedidos.fechapedido%TYPE;/*dalida*/

fecha_esperada pedidos.fechaesperada%TYPE;/*salida*/

fecha_entregada pedidos.fechaentrega%TYPE;/*salida*/

BEGIN

Seleccion_pedidos(7,fecha_pedido,fecha_esperada,fecha_entregada);
DBMS_output.put_line('CODIGO'||COD_PEDIDO);

DBMS_output.put_line('PEDIDO'||fecha_pedido);

DBMS_output.put_line('ESPERA'||fecha_esperada);

DBMS_output.put_line('ENTREGA'||fecha_entregada);

END;

/*FUNCIONES*/

create or replace function buscar_empleado(v_codigoempleado


empleados.codigoempleado%type)

return varchar2

as

v_nombre empleados.nombre%type;

begin

select nombre into v_nombre

from empleados

where codigoempleado = v_codigoempleado;

return v_nombre;

exception

when no_data_found then

return null;

end;

--Verficar Buesqueda de Empleado


declare

v_codigoempleado empleados.codigoempleado%type:=&codigo;

v_nombre empleados.nombre%type;

begin

v_nombre:= buscar_empleado(v_codigoempleado);

if(v_nombre = null) then

DBMS_output.put_line('No encontrado');

else

DBMS_output.put_line('Empleado: ' || v_nombre);

end if;

end;

/*CURSOR*/
declare

cursor sin_pagos is

select nombrecliente

from clientes c

where not exists(select codigocliente from pagos where codigocliente = c.codigocliente);

begin

for registro in sin_pagos loop

dbms_output.put_line(registro.nombrecliente);

end loop;

end;

También podría gustarte