CURSOR_ALREADY_OPEN powstaje w czasie próby otwarcia kursora już otwartego. Pętla FOR rekord IN kursor automatycznie otwiera kursor, toteż jej wykonanie po wcześniejszym otwarciu jawnym kursora też wygeneruje ten wyjątek.
DUP_VAL_ON_INDEX powstaje w czasie próby dopisania rekordu z wyrażeniem indeksowym, identycznym jak rekord już istniejący w tablicy. Dotyczy indeksów unikalnych, założonych przy pomocy polecenia CREATE UNIQUE INDEX.
INVALID CURSOR powstaje w czasie próby wykonania nielegalnej operacji na kursorze, na przykład, zamknięcia kursora nie otwartego.
INVALID_NUMBER powstaje, gdy w poleceniu SQL'owym następuje próba wpisania tekstu do pola numerycznego.
LOGIN_DENIED powstaje w czasie próby rejestrowania w bazie ORACLE, przy zastosowaniu niewłaściwej nazwy użytkownika lub hasła.
NO_DATA_FOUND powstaje, gdy polecenie SELECT INTO nie zwraca żadnego wiersza, lub przy próbie odnoszenia się do nie zainicjowanego wiersza w tablicy PL/SQL'owej.
NO_LOGGED_ON powstaje podczas próby kontaktowania się z bazą bez wcześniejszego zarejestrowania się w niej.
STORAGE_ERROR powstaje, gdy program wyszedł poza pamięć, lub gdy nastąpiła awaria pamięci.
TOO_MANY_ROWS pojawia się, gdy polecenie SELECT INTO wybrało więcej niż jeden rekord.
TRANSACTION_BACKED_OUT powstaje, gdy ORACLE wycofał transakcję z powodu sprzeczności wewnętrznych powstających w bazie.
VALUE_ERROR powstaje z powodu błędów arytmetycznych i konwercyjnych w sytuacjach, których nie obejmuje wyjątek INVALID_NUMBER.
ZERO_DIVIDE powstaje przy próbie dzielenia liczby przez zero.