Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PROCEDURE ejer2
- IS
- v_apellidos persona.apellidos_persona%TYPE;
- v_nombre persona.nombre_persona%TYPE;
- v_dni_p piso.dni_p%TYPE;
- CURSOR propietarios IS SELECT persona.apellidos_persona, persona.nombre_persona, piso.dni_p FROM persona, piso WHERE persona.dni = piso.dni_p;
- v_escalera piso.escalera%TYPE;
- v_planta piso.planta%TYPE;
- v_puerta piso.puerta%TYPE;
- v_calle piso.calle%TYPE;
- v_numero piso.numero%TYPE;
- CURSOR datos_casas IS SELECT escalera, planta, puerta, calle, numero FROM piso WHERE dni_p = v_dni_p;
- v_cantidad NUMBER(10);
- CURSOR pisos_bloque IS SELECT COUNT(*) FROM piso WHERE calle = v_calle AND numero = v_numero AND dni_p = v_dni_p;
- v_num_viviendas NUMBER(10);
- CURSOR num_viviendas IS SELECT COUNT(*) FROM piso WHERE dni_p = v_dni_p GROUP BY dni_p;
- BEGIN
- OPEN propietarios;
- LOOP
- EXIT WHEN propietarios%notfound;
- FETCH propietarios INTO v_apellidos, v_nombre, v_dni_p;
- DBMS_OUTPUT.put_line('Propietario: ' || v_apellidos || ' ' || v_nombre);
- OPEN datos_casas;
- LOOP
- EXIT WHEN datos_casas%notfound;
- FETCH datos_casas INTO v_escalera, v_planta, v_puerta, v_calle, v_numero;
- DBMS_OUTPUT.put_line('Datos casas: ' || v_escalera || ' ' || v_planta || ' ' || v_puerta);
- OPEN pisos_bloque;
- LOOP
- EXIT WHEN pisos_bloque%notfound;
- FETCH pisos_bloque INTO v_cantidad;
- DBMS_OUTPUT.put_line('Pisos del bloque: ' || v_cantidad);
- OPEN num_viviendas;
- LOOP
- EXIT WHEN num_viviendas%notfound;
- FETCH num_viviendas INTO v_num_viviendas;
- DBMS_OUTPUT.put_line('NΒΊ Viviendas: ' || v_num_viviendas);
- END LOOP;
- CLOSE num_viviendas;
- END LOOP;
- CLOSE pisos_bloque;
- END LOOP;
- CLOSE datos_casas;
- DBMS_OUTPUT.put_line('----------------------------------------');
- END LOOP;
- CLOSE propietarios;
- END;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement