Está en la página 1de 3

SET SERVEROUTPUT ON;

---------------------------------------------------------------------------
--CREAR UN PROCEDIMIENTO DONDE PERMITE AGREGAR MAS CLIENTES
---------------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE CLIENTE


(
c_id IN pv_cliente.id_cliente%TYPE,
c_dni IN pv_cliente.num_dni%TYPE,
c_primerape IN pv_cliente.apellido_paterno%TYPE,
c_segundoape IN pv_cliente.apellido_materno%TYPE,
c_nombres IN pv_cliente.nombres%TYPE,
c_idlugar IN pv_cliente.id_lugar%TYPE,
c_idsexo IN pv_cliente.id_sexo%TYPE,
c_fn IN pv_cliente.f_nacimiento%TYPE
)
IS
BEGIN
INSERT INTO pv_cliente VALUES
(c_id,c_dni,c_primerape,c_segundoape,c_nombres,c_idlugar,c_idsexo,c_fn);
COMMIT;
dbms_output.put_line('Cliente agregado satisfactoriamente');
END;
/

EXEC CLIENTE('CD106',91609011,'DE LA CRUZ','CAMACHO','LISBETH


SOLANCH','L007','S002',TO_DATE('01/03/1997','DD/MM/YYYY'));

SELECT * FROM pv_cliente;

-------------------------------------------------------------------
--POR CODIGO PL/SQL PERMITIREMOS ELIMINAR UN REGISTRO DEL CLIENTE
--UTILIZANDO CONDICIONES
-------------------------------------------------------------------

DECLARE
c_id_cliente pv_cliente.id_cliente%TYPE:= &INGRESE_ID_CLIENTE;
cont number;
BEGIN
DELETE FROM pv_cliente where id_cliente = c_id_cliente;
cont := SQL%ROWCOUNT;
IF cont = 0 THEN
dbms_output.put_line('No se encontro el codigo a eliminar');
ELSE
dbms_output.put_line('FILA ELIMINADA');
END IF;

END;
/
COMMIT;
ROLLBACK;

----------------------------------------------------------------------------
--MEDIANTE USO DE CONDICIONES Y EXCEPCIONES PERMITIREMOS MODIFICAR DATOS
-- DEL CLIENTE
----------------------------------------------------------------------------

DECLARE
c_nombres pv_cliente.nombres%TYPE;
c_apellido_p pv_cliente.apellido_paterno%TYPE;
c_apellido_m pv_cliente.apellido_materno%TYPE;
c_dni pv_cliente.num_dni%TYPE;
c_sexo pv_cliente.id_sexo%TYPE;
c_lugar pv_cliente.id_lugar%TYPE;
c_fn pv_cliente.f_nacimiento%TYPE;
p_codigo pv_cliente.id_cliente%TYPE:= &codigoCliente;
p_nombres pv_cliente.nombres%TYPE:= &nombresCliente;
p_apellido_p pv_cliente.apellido_paterno%TYPE:= &apellidopCliente;
p_apellido_m pv_cliente.apellido_materno%TYPE:= &apellidomCliente;
p_dni pv_cliente.num_dni%TYPE:= &numdni;
p_sexo pv_cliente.id_sexo%TYPE:= &sexoCliente;
p_lugar pv_cliente.id_lugar%TYPE:= &lugarCliente;
p_fn pv_cliente.f_nacimiento%TYPE:= &fnCliente;
CNT number;
BEGIN
Select nombres,
apellido_paterno,
apellido_materno,
num_dni,
id_sexo,
id_lugar,
f_nacimiento
into c_nombres,
c_apellido_p,
c_apellido_m,
c_dni,
c_sexo,
c_lugar,
c_fn
from pv_cliente
where id_cliente = p_codigo;
CNT := SQL%ROWCOUNT;

IF CNT > 0 THEN


UPDATE pv_cliente
SET
nombres= p_nombres,
apellido_paterno = p_apellido_p,
apellido_materno = p_apellido_m,
num_dni = p_dni,
id_sexo = p_sexo,
id_lugar = p_lugar,
f_nacimiento = p_fn
WHERE id_cliente = p_codigo;
dbms_output.put_line('NOMBRE DEL CLIENTE MODIFICADO');
END IF;

COMMIT;

EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('El codigo que usted a ingresado no existe');
WHEN OTHERS THEN
dbms_output.put_line('Algun Otro error encontrado');
END;
/

SELECT * FROM pv_cliente;

También podría gustarte