Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PROCEDURE ejer2repaso
- IS
- CURSOR propietarios IS SELECT apellidos_persona, nombre_persona, dni FROM persona, piso WHERE persona.dni = piso.dni_p
- UNION
- SELECT apellidos_persona, nombre_persona, dni FROM persona, casaparticular WHERE persona.dni = casaparticular.dni_cp;
- apellido persona.apellidos_persona%TYPE;
- nombre persona.nombre_persona%TYPE;
- dn persona.dni%TYPE;
- vcalle piso.calle%TYPE;
- vnumero piso.numero%TYPE;
- vescalera piso.escalera%TYPE;
- vplanta piso.planta%TYPE;
- vpuerta piso.puerta%TYPE;
- vcallecasa piso.calle%TYPE;
- vnumerocasa piso.numero%TYPE;
- numcasas NUMBER(2);
- numpisos NUMBER(2);
- CURSOR casas IS SELECT calle, numero FROM casaparticular WHERE dni_cp = dn;
- CURSOR pisos IS SELECT calle, numero, escalera, planta, puerta FROM piso WHERE dni_p = dn;
- BEGIN
- OPEN propietarios;
- LOOP
- FETCH propietarios INTO apellido, nombre, dn;
- EXIT WHEN propietarios%notfound;
- numcasas := 0;
- numpisos := 0;
- DBMS_OUTPUT.put_line (apellido ||', '||nombre);
- OPEN casas;
- LOOP
- FETCH casas INTO vcallecasa,vnumerocasa;
- EXIT WHEN casas%notfound;
- DBMS_OUTPUT.put_line('********Casa: '|| vcallecasa ||', '|| vnumerocasa);
- numcasas := numcasas + 1;
- END LOOP;
- OPEN pisos;
- LOOP
- FETCH pisos INTO vcalle,vnumero,vescalera,vplanta,vpuerta;
- EXIT WHEN pisos%notfound;
- DBMS_OUTPUT.put_line('********Piso: '|| vcalle ||', '|| vnumero);
- numpisos := numpisos + 1;
- END LOOP;
- CLOSE casas;
- CLOSE pisos;
- DBMS_OUTPUT.put_line('********Numero de casas: '|| numcasas);
- DBMS_OUTPUT.put_line('********Numero de pisos: '|| numpisos);
- DBMS_OUTPUT.put_line('*****************************');
- END LOOP;
- CLOSE propietarios;
- END;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement