BD-1st-2.4-lab12.tresc-1.1-Slajd31
Predefiniowane wyjątki (1)
Na bieżącym slajdzie przedstawiono niektóre z predefiniowanych wyjątków SZBD Oracle wraz z numerami błędów odpowiadających błędów z katalogu błędów.
Wyjątek CASE_NOT_FOUND zostaje wygenerowany w przypadku, gdy dla wyrażenia w poleceniu CASE nie znaleziono żadnej pasującej klauzuli WHEN a w wyrażeniu nie zdefiniowano klauzuli ELSE. Następny wyjątek, CURSOR_ALREADY_OPEN, powstaje w przypadku, gdy programista próbuje poleceniem OPEN otworzyć kursor, który już jest otwarty. Z kolei wyjątek INVALID_CURSOR zostaje wygenerowany w przypadku wykonania zabronionej operacji na kursorze, np. próba pobrania rekordu z kursora, który nie został otwarty. Wyjątek DUP_VAL_ON_INDEX powstaje w sytuacji, gdy wykonanie zlecenia INSERT lub UPDATE powoduje powielenie wartości w atrybucie (atrybutach) wchodzącym w skład klucza podstawowego lub unikalnego. Dwa następne wyjątki, NO_DATA_FOUND i TOO_MANY_ROWS, są związane z poleceniem SELECT INTO i zostają wygenerowane w przypadku, gdy polecenie, odpowiednio, nie zwróci żadnego rekordu lub zwróci więcej niż jeden rekord. Wyjątek VALUE_ERROR powstaje w przypadku wykonania błędnej operacji arytmetycznej, błędnej operacji konwersji lub w przypadku próby przypisania do obiektu wartości, która przekracza rozmiar typu obiektu. Ostatni z prezentowanych wyjątków, ZERO_DIVIDE, zostaje wygenerowany w przypadku wykonania w programie dzielenia przez zero.