Suma binarias
Teo CorsaEnsayo17 de Septiembre de 2015
1.026 Palabras (5 Páginas)263 Visitas
EXAMEN DE CASA DE BASES DE DATOS AVANZADAS TERCER PARCIAL
Teodoro Cortes Sanchez
1. ¿Para que se usa la excepción E_SIN_ALUMNOS?
declare
e_sin_alumnos EXCEPTION ;
num_alumnos number(5);
begin
select count(*) into num_alumnos from ALUMNOS where NUMEROCUENA<>0;
if num_alumnos =0 then
RAISE e_sin_alumnos;
End if;
Exception
When e_sin_alumnos then
Insert into temporal values (num_alumnos,to_char(sysdate)||’No hay alumnos’);
End;
/
En el código excepción se usa cuando un parámetro no se encuentra en nuestro registro de alumnos , después hace una inserción en la tabla temporal y manda mensaje de no hay alumnos.
2. Declare
Cursor C1 is
Select NUMEROCUENTA, NOMBREALUMNO from ALUMNO order by 2;
Begin
Delete temporal;
For i in C1 Loop
Insert into temporal values (i.NUMEROCUENTA, i.NOMBREALUMNO);
Commit;
End loop;
End;
/
Nuestro bloque anónimo vamos a declarar un curso , vamos a seleccionar los campos de cuenta y nombre de los alumnos, vamos a eliminar todos los datos de nuestra tabla temporal y después un ciclo for con un loop y después los guardamos un cambio con commit.
3. Modifica la función para CONVERTIR los valores de los campos En parámetros y no SEAN constantes.
create or replace function Inserta_Persona return TIPODATO.TSALIDA is
cursorsalida TIPODATO.TSALIDA;
error varchar(100):=null;
begin
begin
insert into ALUMNOS values (5,'Juan','CALLLE 3, sysdate);
exception
when DUP_VAL_ON_INDEX then
error:=sqlerrm;
end;
if error is not null then
open cursorsalida for
select substr(error,1,100) Error from dual;
else
open cursorsalida for
select 'Insertó correctamente ' Correcto from dual;
commit;
end if ;
return cursorsalida;
end;
/
4. Menciona para que se utiliza NOMBREDEMATERIA en el siguiente código.
create or replace function ConsultaMateria_E(idmat number)
return TIPODATO.TSALIDA is
cursorsalida TIPODATO.TSALIDA;
cadena varchar(100):=null;
error_exception Exception;
materiadesc materiaS.NOMBREMATERIA%type:=null;
begin
begin
select NOMBREMATERIA into materiadesc from MATERIAS where CLAVE =idmat;
exception
when others then materiadesc:='No encontró Registros';
end;
if materiadesc is not null then
RAISE error_exception;
Else
open cursorsalida for
select materiadesc NOMBREDEMATERIA from dual;
return cursorsalida;
End if;
Exception
When error_exception then
open cursorsalida for
select materiadesc NOMBREDEMATERIA from dual;
return cursorsalida;
end;
/
En este campo vamos a mostrar en nuestra pantalla de sql el cursos de return en valor de salida
5. DECLARE
CURSOR c1 is
SELECT NUMEROCUENTA, NOMBREALUMNO, FECHANACIMIENTO FROM persona ORDER BY FECHANACIMIENTO DESC;
VNUMEROCUENTA ALUMNOS.NUMEROCUENTA%TYPE;
VNOMBREALUMNO ALUMNOS. NOMBREALUMNO %TYPE;
VFECHANACIMIENTO DATE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO VNUMEROCUENTA , VNOMBREALUMNO , VFECHANACIMIENTO ;
EXIT WHEN (c1%ROWCOUNT > 5) OR (c1%NOTFOUND);
INSERT INTO temporal VALUES (VNUMEROCUENTA , VNOMBREALUMNO );
COMMIT;
END LOOP;
CLOSE c1;
END;
/
Nuestro bloque anónimo vamos a declarar un cursos, después vamos a seleccionar número de cuenta nombre del alumno y fecha de nacimiento en orden descendente realiza un ciclo donde esos campos los almacena en variables para insertarlos en tabla temporal realizar un commit terminar el ciclo y termina el cursor
6. DECLARE
CURSOR c1 IS
select CLAVE, NOMBREATERIA from MATERIA where CREDITOS is not null order by NOMBREMATERIA ;
BEGIN
delete temporal;
FOR i IN c1 LOOP
insert into temporal values (i.clave+10, i.nombremateria);
commit;
END LOOP;
END;
/
Después nuestro cursor donde selecciona clave de nuestra base y nombre de materia elimina los registros de la tabla temporal inicia un ciclo para insertar nuevos valores a esta tabla donde ahora será la clave+10 y el nombre de la materia a insertar guardas los cambios y cierras el ciclo y termina tu cursor
...