Procedura z wyjątkiem, SQL Oracle

0

Witam, mam do stworzenia procedurę z wyjątkiem. Procedura ma przypisywać mieszkania osobą. Wielkość mieszkań zostaje podana oraz id osoby do której to mieszkanie ma zostać przypisane i procedura znajduje mieszkanie z najbliższą wielkością do podanej. Udało mi się ją zrobić natomiast mam problem z wyjątkiem, który ma wyświetlić informacje o braku mieszkań, gdy nie będzie już wolnego mieszkania. Ma zostać wyświetlony informacja o braku mieszkań. Nie może zostać przypisane mieszkanie do dwóch osób.
Procedura:
create OR replace procedure przypisz_mieszkanie(id_osoby int, liczba_m2 int)
IS
BEGIN
update osoba
set id_mieszkania = (SELECT id FROM (SELECT * from mieszkanie ORDER BY ABS(metraz-liczba_m2)) WHERE rownum=1)
where id = id_osoby;
end;
Tabele:
CREATE TABLE mieszkanie(
id NUMBER CONSTRAINT miesz_pk PRIMARY KEY,
numer NUMBER,
metraz NUMBER,
id_bloku NUMBER,
CONSTRAINT miesz_bl_fk FOREIGN KEY (id_bloku) REFERENCES BLOK (ID)
);

CREATE TABLE osoba(
ID NUMBER CONSTRAINT os_pk PRIMARY KEY,
imie varchar2(20),
nazwiskoa varchar2(20),
wiek NUMBER,
id_mieszkania NUMBER,
CONSTRAINT os_miesz_fk FOREIGN KEY (id_mieszkania) REFERENCES mieszkanie(id)
);
CREATE TABLE BLOK
(
ID NUMBER CONSTRAINT blok_pk PRIMARY KEY,
ulica varchar2(20),
numer number
);
Bardzo proszę o pomoc

1
When no_data_found then
Raise_application_error(...)

1 użytkowników online, w tym zalogowanych: 0, gości: 1