Procedure en oracle 11g con WHEN NO_DATA_FOUND exepciones

Ejercicio No.1

Crear un procedimiento con el nombre de Actualiza_Saldo, el cual deberá permitir actualizar el saldo de una cuenta, la tabla se llama: Saldos_Cuentas y contiene los siguientes campos: Saldo de tipo numérico, Fecha_Actualizacion tipo date y Co_Cuenta (número de cuenta) de tipo numérico. El procedimiento debe permitir enviar el número de cuenta y saldo como parámetros para su búsqueda y actualización, así mismo la fecha de actualización debe ser actualizada con la fecha del sistema.

CREATE TABLE Saldos_Cuentas
(
Saldo INTEGER ,
Fecha_Actualizacion DATE ,
Co_Cuenta INTEGER NOT NULL
);
ALTER TABLE Saldos_Cuentas ADD CONSTRAINT Saldos_Cuentas_PK PRIMARY KEY ( Co_Cuenta ) ;


Insert into SALDOS_CUENTAS (SALDO,FECHA_ACTUALIZACION,CO_CUENTA) values (333,to_date('11/08/15','DD/MM/RR'),3);
Insert into SALDOS_CUENTAS (SALDO,FECHA_ACTUALIZACION,CO_CUENTA) values (33333,to_date('12/08/15','DD/MM/RR'),4);

CREATE OR REPLACE PROCEDURE Actualiza_Saldo(Cuentabuscar INTEGER,nuevosaldo INTEGER)
AS
BEGIN
UPDATE SALDOS_CUENTAS SET saldo= nuevosaldo, FECHA_ACTUALIZACION = SYSDATE
WHERE CO_CUENTA=Cuentabuscar;
END;

SELECT * FROM SALDOS_CUENTAS;

EXEC ACTUALIZA_SALDO(3,4443333)

SELECT * FROM SALDOS_CUENTAS;

Ejercicio No. 2

Crear un procedimiento con el nombre de Ver_departamento, el cual debe permitir enviar como parámetro el número de departamento a través de la variable numdepart de tipo numérico, se debe de declarar las variables v_dnombre tipo varchar2 de 14 posiciones y localidad tipo varchar2 de 14 posiciones. El procedimiento debe realizar una consulta en la tabla depart la cual contiene los siguientes campos: dnombre(nombre del departamento), loc(localidad) y depot_no(número de departamento), la consulta se ejecutara a través del numdepart que se envía como parámetro, en caso de encontrar el número de departamento deberá de mostrar a través de un DBMS_OUTPUT el número de departamento con el nombre del mismo y su localidad, si no encontrase el departamento se debe de levantar la exception WHEN NO_DATA_FOUND, mostrando por medio de un DBMS_OUTPUT que no encontró el departamento.

CREATE TABLE depart
(
dnombre varchar2(14) ,
loc varchar2(14) ,
depot_no INTEGER NOT NULL
);
ALTER TABLE depart ADD CONSTRAINT depart_PK PRIMARY KEY ( depot_no );

create or replace PROCEDURE Ver_departamento(numdepart INTEGER)
is
v_dnombre varchar2(14);
localidad varchar2(14);
BEGIN
SELECT dnombre into v_dnombre
FROM depart
WHERE depot_no = numdepart;
DBMS_OUTPUT.PUT_LINE('Numero de departamento: '|| numdepart);
DBMS_OUTPUT.PUT_LINE('Nombre: ' || v_dnombre);
DBMS_OUTPUT.PUT_LINE('localidad: ' || localidad);
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No se encontro ningun departamento');
WHEN others THEN
dbms_output.put_line('Ha ourrido un error!');
END;
exec Ver_departamento(2)
Esta entrada fue publicada en Uncategorized. Guarda el enlace permanente.