Subrprograma PL/SQL

Jony c
22 de Junio del 2014
Buenas noches, soy estudiante de un ciclo de Informática y necesito resolver una tarea en la que estoy totalmente perdido. Pongo aqui el enunciado, si alguien es tan amable de echarme una mano, que me lo diga y le paso las tablas necesarias.

Muchisimas gracias de antemano.


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

Jony c
22 de Junio del 2014
Aqui dejo tambien los valore de la tabla familias para dar mas informacion:

Tablas familia (identifiacador, nombre, familia, oficina)

insert into familias values (11, 'Madrid-1', NULL, 1);
insert into familias values (111, 'Madrid-1.1', 11, NULL);
insert into familias values (112, 'Madrid-1.2', 11, NULL);
insert into familias values (1121, 'Madrid-1.2.1', 112, NULL);
insert into familias values (1122, 'Madrid-1.2.2', 112, NULL);
insert into familias values (1123, 'Madrid-1.2.3', 112, NULL);
insert into familias values (21, 'Granada-1', NULL, 2);
insert into familias values (211, 'Granada-1.1', 21, NULL);
insert into familias values (212, 'Granada-1.2', 21, NULL);
insert into familias values (213, 'Granada-1.3', 21, NULL);
insert into familias values (31, 'Jaén-1', NULL, 3);