Ora 00955 oracle что за ошибка
В PL/SQL предусмотрен механизмы перехвата и обработки ошибок, возникающих при выполнении программы. Эти механизмы называются исключительными ситуациями.
Когда программа обнаруживает заданное условие ошибки, то вызывается соответствующая исключительная ситуация. Обработки исключительных ситуаций в программе производится в разделе EXCEPTION.
При обнаружении исключительной ситуации, обработка основного тела программы останавливается и управление передается соответствующему обработчику исключительной ситуации, который определяет дальнейшие действия.
В PL/SQL используются следующие типы исключительных ситуаций:
- встроенные исключительные ситуации;
- исключительные ситуации, определяемые пользователем;
- обработчик OTHERS.
Встроенные исключительные ситуации
Oracle включает четырнадцать встроенных исключительных ситуаций, соответствующих типовым ошибкам, приведенным в следующей таблице:
Если в раздел EXCEPTION программы (блока) включена фраза
WHEN имя_исключения THEN
текст_обработчика_исключения;
В приведенном ниже триггере «shtins» использованы два типа встроенных исключительных ситуаций: NO_DATA_FOUND и TOO_MANY_ROWS.
При использовании такой таблицы и процедуры RAISE_APPLICATION_ERROR надо описать в в разделе DECLARE блока две переменных (например, errnum типа NUMBER и errtext типа VARCHAR2) и использовать в обработчике исключений конструкцию:
Исключительные ситуации, определяемые пользователем
Кроме встроенных могут быть использованы собственные исключительные ситуации, имена которых необходимо описать в разделе DECLARE блока PL/SQL (например, err_stavka EXCEPTION). В разделе EXCEPTION блока должен быть описан соответствующий обработчик исключительной ситуации, например
Обработчик OTHERS
Если исключительная ситуация не обрабатывается явным образом в блоке и для ее перехвата не используется обработчик OTHERS, то PL/SQL отменяет выполняемые блоком транзакции и возвращает необработанную исключительную ситуацию обратно в вызывающую среду.
Обработчик особых ситуаций OTHERS описывается последним в программе (блоке) для перехвата всех исключительных ситуаций, которые не были описаны в этой программе (блоке). Он может иметь вид
Запись опубликована 09.04.2010 в 7:12 дп и размещена в рубрике Oracle7 краткий справочник. Вы можете следить за обсуждением этой записи с помощью ленты RSS 2.0. Можно оставить комментарий или сделать обратную ссылку с вашего сайта.
При первом запуске создался пакет. Я добавил процедуру и пытаюсь скомпилировать, выдает ошибку:
ORA-00955: name is already used by an existing object
Как мне пересоздать пакет?
Не хватает завершающего символа после объявления пакета. Надо так:
Отличия и общее для завершающих символов "/" и ";" в SQl Developer следующее:
- Оба символа не входят в стандарт SQL и никак в SQL запросе не интепритируются.
- ";" является составной частью языка PL/SQL, он завершает законченое выражение.
- Оба не посылаются на сервер, а служат только как служебные символы - "здесь конец".
В одной вкладке редактора (SQL Worksheet) могут находится многочисленные запросы и анонимные блоки. Поэтому, для выполнения одного запроса или блока (по умолчанию с CTRL-ENTER), необходимо:
SQL запросы не содержащих PL/SQL блока, в частности - все DML, некоторые DDL, DCL - необходимо завершить его либо с ";", либо с "/" на новой строке.
Анонимные блоки и SQL запросы содержащие PL/SQL блок ( create . package/function/trigger/. ) или потенциально могущие его содержать ( create . type ), необходимо завершить его с "/", т.к. ";" завершает последний END в блоке.
Если SQl Developer не находит завершающих символов, он ищет их дальше по тексту, и когда их найдёт (если не найдёт, то до конца текста), посылает несколько запросов поочереди, что приводит к неопределённому результату. Обычно, к ошибке выполнения, которая не совсем понятна.
На заметку: Если запрос или блок выделить визуально, тогда SQl Developer выполнит только выделенное, даже если завершающие символы отсутствуют.
Читайте также:
- Какую клемму снимать первой с аккумулятора в автомобиле чтобы обнулить компьютер
- Можно ли отследить звонок из скайпа
- После включения xmp профиля компьютер не включается
- Потекла батарейка в брелке сигнализации дисплей частично не работает
- При проверке файлов и каталогов были обнаружены поврежденные данные