Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Predefiniowane wyjątki
Forum PHP.pl > Forum > Bazy danych > Oracle
bleze
Czy istnieją jakieś przedefiniowane wyjątki aby wyłapać kiedy zrobi się update rekordu nieistniejącego, tzn nie spełni się warunek where?
wiiir
Jest. Mozesz wykorzystać cursor SQL

Ogolnie rzecz biorąc SQL zwraca ci informacje na temat ostatniego sql statement, wiecej masz w dokumentacji:
http://docs.oracle.com/cd/B19306_01/appdev.../sql_cursor.htm

Dla przykladu:
  1. BEGIN
  2. DELETE FROM employee
  3. WHERE first_name = 'kowalski';
  4. IF (SQL%NOTFOUND)
  5. THEN
  6. dbms_output.put_line('Brak danych do usunięcia.');
  7. END IF;
  8. END;

Podobnie robisz z updatem

Jest tylko jeden wyjatek ze zwykłem selektem
Mianowicie
  1. SELECT employee.name
  2. INTO lv_emp_name
  3. FROM employee
  4. WHERE employee.id = 5;
  5. IF SQL%NOTFOUND then
  6. dbms_output.put_line('Brak danych.');
  7. end IF;


Wiadomo dlaczego prawda?

W takiej sytucji stosujesz block
  1. begin...exception when no_data_found then....end;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.