CFGS DAW BASES DE DATOS TAREA 6

Páginas: 2 (403 palabras) Publicado: 15 de mayo de 2015

Actividad 1.
1. Queremos crear un subprograma que mueva una familia origen a otra de destino, de la que pasará a ser hija.
2. Se debe comprobar que la familia destino no es hija de la familiaorigen. Para ello debemos crear una función recursiva auxiliar que haga dicha comprobación.
3. También comprobaremos que tanto la familia origen, como la familia destino existen (el subprogramaaceptará como parámetros los identificadores de ambas familias).
4. Para hacer las comprobaciones de si ambas familias existen se deberá utilizar un único cursor variable.
5. Además si la familia origenpertenecía a una oficina deberá dejar de pertenecer a esa oficina y sólo ser hija de la familia destino.
6. El subprograma deberá lanzar todos los errores que se puedan producir en su ejecuciónmediante errores que identifiquen con un mensaje adecuado por qué se ha producido dicho error.




CREATE OR REPLACE
PROCEDURE MUEVE_FAMILIA(ID_FAMILIA_ORIGEN NUMBER, ID_FAMILIA_DESTINO NUMBER)
IS--DECLARACIÓN DE VARIABLES
RESULTADO BOOLEAN;
PADRE NUMBER;
TYPE CURSOR_FAMILIAS IS REF CURSOR RETURN FAMILIAS%ROWTYPE;
CFAMILIAS CURSOR_FAMILIAS;
FAMILIA CFAMILIAS%ROWTYPE;
EXISTE_F_ORIGENBOOLEAN;
EXISTE_F_DESTINO BOOLEAN;

--FUNCIÓN QUE COMPRUEBA SI LA FAMILIA DESTINO ES HIJA DE LA FAMILIA ORIGEN
FUNCTION COMPRUEBA_SI_ES_HIJA(ID_F_ORIGEN NUMBER, ID_F_DESTINO NUMBER)
RETURN BOOLEAN ISES_HIJA BOOLEAN;
BEGIN
SELECT FAMILIA INTO PADRE FROM FAMILIAS WHERE IDENTIFICADOR = ID_F_DESTINO;
IF PADRE IS NULL THEN
RETURN FALSE;
ELSE
IF PADRE = ID_F_ORIGEN THEN
RETURNTRUE;
ELSE
RETURN COMPRUEBA_SI_ES_HIJA (ID_F_ORIGEN, PADRE);
END IF;
END IF;
END COMPRUEBA_SI_ES_HIJA;

BEGIN

--HABILITO SALIDA PARA DEBUG
DBMS_OUTPUT.ENABLE( 1000000 );

--COMPRUEBO SIEXISTE LA FAMILIA ORIGEN
EXISTE_F_ORIGEN := TRUE;
OPEN CFAMILIAS FOR SELECT * FROM FAMILIAS WHERE IDENTIFICADOR = ID_FAMILIA_ORIGEN;
FETCH CFAMILIAS INTO FAMILIA;
IF CFAMILIAS%NOTFOUND THEN...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • CFGS DAM BASES DE DATOS TAREA 7
  • Tarea se semana 6 de Bases de datos CUCEI
  • Tarea Evaluable 6 Bases
  • TAREA GALILEO BASE DE DATOS
  • tarea de base de datos
  • Tarea base de datos
  • Tarea Base De Datos Sql
  • Tarea Unidad I-Base de datos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS