CREATE or REPLACE FUNCTION borrar_inmueble_cursor_escritura_fetch(vinmueble 
inmueble.id%TYPE) RETURNS BOOLEAN AS $$
DECLARE
curdorm CURSOR FOR SELECT * FROM dormitorio
WHERE inmueble_id = vinmueble FOR UPDATE;
vreginmueb inmueble%ROWTYPE;
vregdorm dormitorio%ROWTYPE;
encontrado BOOLEAN DEFAULT FALSE;
BEGIN
OPEN curdorm;
FETCH curdorm INTO vregdorm;

WHILE FOUND LOOP
  encontrado := TRUE;
  DELETE FROM dormitorio
  WHERE CURRENT OF curdorm;
  RAISE NOTICE 'Se ha eliminado el dormitorio: % ',vregdorm;
  FETCH curdorm INTO vregdorm;
END LOOP;

IF NOT encontrado THEN
   RAISE NOTICE 'No se han eliminado dormitorios del inmueble: %',vinmueble;
END IF;

DELETE FROM inmueble
WHERE id = vinmueble
RETURNING * INTO vreginmueb;
IF FOUND THEN 
   RAISE NOTICE 'Se ha eliminado el inmueble % ',vreginmueb;
   RETURN TRUE;
ELSE
   RAISE NOTICE 'No existe el inmueble % ',vinmueble;
   RETURN FALSE;
END IF;
CLOSE curdorm;
END;
$$ LANGUAGE plpgsql;