Está en la página 1de 2

--ACTUALIZAR RUC EN PV_PROVEEDOR

select * from pv_proveedor;


DECLARE
v_NombreSocial pv_proveedor.nombre_razonsocial%TYPE;
v_IdProveedor pv_proveedor.id_proveedor%TYPE := &id_proveedor;
n_RUC pv_proveedor.ruc%TYPE := &Nuevo_RUC;
e_RUC_invalido EXCEPTION;
BEGIN
SELECT NOMBRE_RAZONSOCIAL INTO v_NombreSocial
FROM PV_PROVEEDOR
WHERE v_idproveedor=id_proveedor;

IF n_RUC NOT BETWEEN 0 AND 99999999999 THEN


RAISE e_RUC_invalido;
ELSE
DBMS_OUTPUT.PUT_LINE('El RUC ingresado es correcto');
UPDATE pv_proveedor
SET RUC=n_RUC
WHERE id_proveedor=v_idproveedor;
--COMMIT;
END IF;

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO EXISTE EL ID DEL PROVEEDOR INGRESADO');
WHEN e_RUC_invalido THEN
DBMS_OUTPUT.PUT_LINE('EL RUC EST� EN UN RANGO INCORRECTO');
when others then
DBMS_OUTPUT.PUT_LINE('ALGUN OTRO ERROR ENCONTRADO');
END;
/
ROLLBACK;

--ACTUALIZAR STOCK EN PV_PRODUCTO


select * from pv_producto;
DECLARE
v_descripcion pv_producto.descripcion%TYPE;
v_IdProducto pv_producto.id_producto%TYPE := &id_producto;
n_stock pv_producto.stock%TYPE := &Nuevo_stock;
e_stock_invalido EXCEPTION;
BEGIN
SELECT DESCRIPCION INTO v_descripcion
FROM PV_PRODUCTO
WHERE v_IdProducto=id_producto;

IF n_stock NOT BETWEEN 0 AND 9999 THEN


RAISE e_stock_invalido;
ELSE
DBMS_OUTPUT.PUT_LINE('El stock ingresado es correcto');
UPDATE pv_producto
SET STOCK=n_stock
WHERE id_producto=v_IdProducto;
COMMIT;
END IF;

EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO EXISTE EL ID DEL PRODUCTO INGRESADO');
WHEN e_stock_invalido THEN
DBMS_OUTPUT.PUT_LINE('EL STOCK EST� EN UN RANGO INCORRECTO');
when others then
DBMS_OUTPUT.PUT_LINE('ALGUN OTRO ERROR ENCONTRADO');
END;
/

SET SERVEROUTPUT ON;

--LISTAR CON CURSOR EXPLICITO


DECLARE
V_ID_PRODUCTO pv_producto.id_producto%TYPE;
V_DESCRIPCION pv_producto.descripcion%TYPE;
V_STOCK pv_producto.stock%TYPE;
CURSOR pro_cursor IS
SELECT ID_PRODUCTO, DESCRIPCION, STOCK FROM PV_PRODUCTO;
BEGIN

OPEN pro_cursor;

DBMS_OUTPUT.PUT_LINE('rowcount ' || pro_cursor%ROWCOUNT);

LOOP
FETCH pro_cursor INTO V_ID_PRODUCTO, V_DESCRIPCION, V_STOCK;
EXIT WHEN pro_cursor%NOTFOUND ;
DBMS_OUTPUT.PUT_LINE('rowcount -> Fetch: ' || pro_cursor%ROWCOUNT);
DBMS_OUTPUT.PUT_LINE(V_ID_PRODUCTO || ' => ' || V_DESCRIPCION || ' => ' ||
V_STOCK);
END LOOP;

CLOSE pro_cursor;

END;
/

También podría gustarte