Wyszukiwanie atrybutu tabeli po parametrze procedury

Wyszukiwanie atrybutu tabeli po parametrze procedury
KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 32
0

Czesc! Chcialbym napisac procedure w PL/SQL'u jednakże nie potrafię stworzyć odpowiednich warunków. Jak sprawdzić czy wartość podana jako parametr procedury już występuje w tabeli? Miałoby to działać na takiej zasadzie:

Kopiuj
DodajLekarza(p_pesel IN INTEGER, (...), p_specjalizacja IN VARCHAR) IS
v_id_spec INTEGER;
BEGIN
    1) Jeśli p_specjalizacja nie istnieje jeszcze w  tabeli Specjalizacja wtedy: 
            INSERT INTO Specjalizacja VALUES (spec_numer.NEXTVAL, p_specjalizacja);
    2) Jesli p_specjalizacja istnieje juz w tabeli Specjalizacja wtedy:
           SELECT id_spec INTO v_id_spec FROM Specjalizacja WHERE nazwa = p_specjalizacja;
           (...)

Będę wdzięczny za pomoc w stworzeniu takiego warunku! Probowalem przez NOT EXISTS i NOT IN no ale widocznie robiłem coś źle.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
1
Kopiuj
declare
  v_id_spec integer;
begin
  begin
    select id_spec into v_id_spec from Specjalizacja WHERE nazwa = p_specjalizacja;
    EXCEPTION WHEN NO_DATA_FOUND
    begin
      select spec_numer.NEXTVAL into v_id_spec from dual;
      INSERT INTO Specjalizacja VALUES (v_id_spec, p_specjalizacja);
    end;
  end;
end;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.