Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Predefiniowane wyjątki, [PLSQL]
bleze
post 12.12.2012, 23:27:02
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


Czy istnieją jakieś przedefiniowane wyjątki aby wyłapać kiedy zrobi się update rekordu nieistniejącego, tzn nie spełni się warunek where?
Go to the top of the page
+Quote Post
wiiir
post 13.12.2012, 21:17:14
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

Ostrzeżenie: (0%)
-----


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;


Ten post edytował wiiir 13.12.2012, 21:23:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 20:58