SQL - Ayuda cursores SQL

 
Vista:

Ayuda cursores SQL

Publicado por Carlos (1 intervención) el 11/03/2010 23:40:50
Bueno... me han planteado 5 problemas para mañana y me liquidan el curso entero de SQL. Estoy bastante atascado en el ultimo y no se muy bien como solucionarlo :(

El ejercicio en si dice:

"Recordar que tenemos tres tablas que hacen referencia a la información cadastral de un supuesto ajuntamiento (tabla de contribuyentes, tabla de cadastre i tabla de referencia). Suponer ahora que creamos una nueva tabla con los siguientes atributos:

nom -> contiene el nombre de un contribuyente.
finca -> contiene la referencia cadastral de una determinada finca.
carrer -> contiene la direccion de la finca.
codi -> contiene el codigo postal de la finca.

Hacer un procedimento que, dando el codigo de un contribuyente, llene la tabla anterior con los datos correspondientes al contribuyente y a las fincas de su propiedad. El procedimiento ha de tener en cuenta que el codigo introducido como parametro podria no tener correspondencia en un contribuyente determindado. tambien debemos tener en cuenta que el contribuyente en cuestion no tenga ninguna finca en propiedad."

La tabla a crear seria:

CREATE TABLE ejercicio (
ej_nom varchar2(20),
ej_finca number(3),
ej_carrer varchar2(50),
ej_codi number(5),
primary key (ej_nom, ej_finca),
);

Las ya creadas y necesarias para el ejercicio serian:

create table contribuents
(cod_cont char(4) primary key,
nom char(15),
nif char(9) not null);

create table cadastre
(ref_cad number(3) primary key,
tipus_via char(2) constraint via
check(tipus_via in ('AV','CR','CT')),
nom_carrer char(20) not null,
numero number(4) constraint num
check(numero between 1 and 2000),
cod_postal number(5) constraint postal
check(cod_postal between 07000 and 07999),
valor_cad number(9) constraint valor
check(valor_cad>0),
tipus_liq number(2) constraint tipus
check(tipus_liq between 2 and 6));

create table contr_finques
(cod_cont char(4),
ref_cad number(3),
primary key(cod_cont, ref_cad),
foreign key (ref_cad) references cadastre(ref_cad),
foreign key (cod_cont) references contribuents(cod_cont));

Si alguno pudiera desatascarme de este ultimo ejercicio me haria un gran gran favor. Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda cursores SQL

Publicado por Leto (12 intervenciones) el 12/03/2010 13:33:26
pseudocodigo:

procedimiento llenar_tabla ( p_cont char )

declaraciones

cursor fincas_contri ->
select C.nombre, F.id_finca, F.calle, F.postal
from contri C, fincas F, relacion R
where C.id_contri = R.id_contri
and F.id_finca = R.id_finca
and C.id_contri = p_cont

v_nom char
v_finca number
v_calle char
v_postal number

codigo

abrir cursor fincas_contri
iterar
fetch fincas_contri into v_nom,v_fina,v_calle,v_postal
salir si fetch no obtuvo valores
insert into nuevaTabla values(v_nom,v_fina,v_calle,v_postal)
finIterar

fin codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar