ПредишенСледващото

Малък наръчник за грешка капани на Oracle PLSQL.
Описание на начина на използване на Oracle (PLSQL) SQLERRM и SQLCODE функция за улавяне на грешки изключение. описание Синтаксис и пример.

SQLERRM функция връща съобщение за грешка, свързана с последния, произтичащи изключение (грешка).
SQLERRM функция - не е включена лампа.

SQLCODE функция връща код на грешка, свързана с изключение миналата възникналия (грешка)
SQLERRM функция - не е включена лампа.

Обикновено лечението ИЗКЛЮЧЕНИЕ изключение, както следва:

Можете да използвате и SQLERRM SQLCODE функция за генериране на съобщение за грешка, като този:


Или можете да запазите съобщението в таблицата за грешка, както следва:


Варианти на основните възможности:

DUP_VAL_ON_INDEX
ORA-00001
Когато се опитате да вмъкнете вмъкване или обновяване на промяна на данните, която създава дублиран запис нарушава уникален индекс (уникален индекс).

TIMEOUT_ON_RESOURCE
ORA-00051
Това се случва, когато ресурса, на която е извършена операцията е блокиран и не е за нулиране на изчакване.

TRANSACTION_BACKED_OUT
ORA-00061
Частично бе намаление на цените сделка.

INVALID_CURSOR
ORA-01001
Опитите да се използва позицията на курсора не съществува. Може да възникне, ако се опитате да използвате курсора FETCH или в близост до затваряне на курсора преди това курсора сте отворили OPEN.

NOT_LOGGED_ON
ORA-01012
Опитвайки се да се действие, не са влезли в системата.

LOGIN_DENIED
ORA-01017
Неуспешен опит да влезете, за отказан достъп, неправилни име и парола.

NO_DATA_FOUND
ORA-01403
Какво тогава от следните неща: Опитвам се да вмъкнете SELECT INTO несъществуваща набор от ценности (изберете - не връща нищо). Опит за достъп до неинициализирани ред / записи в таблицата. Опитвайки се да се чете рекорд след края на файла с помощта UTL_FILE пакет.

TOO_MANY_ROWS
ORA-01422
Опитайте се да въведете стойност в променлива с помощта на SELECT в и изберете върна повече от едно значение.

INVALID_NUMBER
ORA-01722
Един опит да се изпълни SQL запитване, който превръща линия (STRING) в брой (NUMBER), където такова преобразуване е невъзможно.

STORAGE_ERROR
ORA-06500
Всяка от паметта, или грешка в паметта.

PROGRAM_ERROR
ORA-06501
Вътрешна грешка на софтуера се препоръчва да се справят с тази грешка до Oracle Support.

VALUE_ERROR
ORA-06502
Опитът да се направи операция на преобразуване на данните, която приключи в грешка (например, закръгляване, тип реализация, и т.н.).

CURSOR_ALREADY_OPEN
ORA-06511
Вие се опитвате да отворите курсора, че вече е отворен.

Това е може би всичко.

Подкрепете проекта - споделете линка, благодаря!