Ora 06503 ошибка

An important thing regarding function, you would agree with me that, at least once a PL/SQL developer must have heard that “A function MUST ALWAYS RETURN a VALUE of proper datatype”. Ha…

An important thing regarding function, you would agree with me that, at least once a PL/SQL developer must have heard that “A function MUST ALWAYS RETURN a VALUE of proper datatype”. Having been said that a million times on various platforms, still developers make this mistake.

ORA-06503: PL/SQL: Function returned without value
Cause: A call to PL/SQL function completed, but no RETURN statement was executed.
Action: Rewrite PL/SQL function, making sure that it always returns a value of a proper type.

DB version : 11.2.0.2.0

Let’s see the various scenarios of this error :

Without a RETURN statement in the function body and without exception handler(most stupid way):


SQL> set serveroutput on;

SQL> CREATE OR REPLACE FUNCTION f_test(i_val NUMBER)
2 RETURN NUMBER AS
3    o_val NUMBER;
4 BEGIN
5    SELECT 100 / i_val
6       INTO o_val
7    FROM DUAL;
8 END;
9 /
Function created

SQL> select f_test(100) from dual;
select f_test(100) from dual
ORA-06503: PL/SQL: Function returned without value
ORA-06512: at "F_TEST", line 8

Now, in the above code, the mathematical logic was correct, hence there was no SQL error to override the PL/SQL error. Let’s see how ORA-01476 will override the ORA-06503 error.


SQL> CREATE OR REPLACE FUNCTION f_test(i_val NUMBER)
2 RETURN NUMBER AS
3    o_val NUMBER;
4 BEGIN
5    SELECT 100 / i_val
6       INTO o_val
7    FROM DUAL;
8 END;
9 /
Function created

SQL> select f_test(0) from dual;
select f_test(0) from dual
ORA-01476: divisor is equal to zero
ORA-06512: at "F_TEST", line 5

Well, that’s quite obvious, isn’t it?

2.  Without a RETURN statement in the exception handler(most common mistake) :


SQL> CREATE OR REPLACE FUNCTION f_test(i_val NUMBER)
2 RETURN NUMBER AS
3    o_val NUMBER;
4 BEGIN
5    SELECT 100 / i_val
6       INTO o_val
7    FROM DUAL;
8
9 RETURN o_val;
10
11 EXCEPTION
12    WHEN OTHERS THEN
13       NULL;
14 END;
15 /
Function created

SQL> select f_test(0) from dual;
select f_test(0) from dual
ORA-06503: PL/SQL: Function returned without value
ORA-06512: at "F_TEST", line 14

—————————————-/ OFF TOPIC /—————————————-

This is somewhat important to share.

EXCEPTION WHEN OTHERS THEN NULL;
–> is itself a bug in the code waiting for its chance to break the code.

At least a good developer would remember that WHEN OTHERS should be always followed by a RAISE. Re-raising the error would show us the root cause, rather than the confusing “ORA-06503: PL/SQL: Function returned without value” error.


SQL> CREATE OR REPLACE FUNCTION f_test(i_val NUMBER)
2 RETURN NUMBER AS
3    o_val NUMBER;
4 BEGIN
5    SELECT 100 / i_val
6       INTO o_val
7    FROM DUAL;
8
9 RETURN o_val;
10
11 EXCEPTION
12    WHEN OTHERS THEN
13       NULL;
14    RAISE;
15 END;
16 /
Function created

SQL> select f_test(0) from dual;
select f_test(0) from dual
ORA-01476: divisor is equal to zero
ORA-06512: at "F_TEST", line 14

—————————————-/ OFF TOPIC /—————————————-

Now let’s put a RETURN statement at required places and the code should work fine without any error :


SQL> CREATE OR REPLACE FUNCTION f_test(i_val NUMBER)
2 RETURN NUMBER AS
3 o_val NUMBER;
4 BEGIN
5 SELECT 100 / i_val
6 INTO o_val
7 FROM DUAL;
8
9 RETURN o_val;
10
11 EXCEPTION
12 WHEN OTHERS THEN
13 DBMS_OUTPUT.PUT_LINE('Came inside Exception handler');
14 RETURN 0;
15 END;
16 /
Function created

SQL> select f_test(0) from dual;
F_TEST(0)
----------
0
Came inside Exception handler

Bottom line is that :

  • A function MUST ALWAYS RETURN a value of proper datatype, no matter from the body or exception.
  • We must do something with the error not just return junk. We must RAISE/log error and handle it, do something about the error so that underlying process has no impact.
  • Lastly, not to forget, EXCEPTION WHEN OTHERS THEN NULL; –> is itself a bug in the code waiting for its chance to break the code.

Ошибки Оракла ORA-06000 — ORA-06999

В нотной записи PL/SQL допущена нота не той октавы

Группы шестой тысячи ошибок Oracle (по диапазонам кодов от 6000 до 6999):

  • Ошибки ORA-06000 — ORA-06099
  • Ошибки ORA-06100 — ORA-06199
  • Ошибки ORA-06200 — ORA-06299
  • Ошибки ORA-06300 — ORA-06399
  • Ошибки ORA-06400 — ORA-06499
  • Ошибки ORA-06500 — ORA-06599
  • Ошибки ORA-06600 — ORA-06699
  • Ошибки ORA-06700 — ORA-06799
  • Ошибки ORA-06800 — ORA-06899
  • Ошибки ORA-06900 — ORA-06999

Ошибки ORA-06000 — ORA-06099

  • ORA-06000 NETASY: открытие порта провалено
  • ORA-06001 NETASY: установка порта провалена
  • ORA-06002 NETASY: чтение порта провалено
  • ORA-06003 NETASY: запись порта провалена
  • ORA-06004 NETASY: провалено открытие диалогового файла.
  • ORA-06005 NETASY: провалено чтение диалогового файла
  • ORA-06006 NETASY: провалено выполнение диалога
  • ORA-06007 NETASY: неверный формат диалога
  • ORA-06009 NETASY: имя файла диалога слишком длинное
  • ORA-06010 NETASY: диалоговый файл слишком длинный
  • ORA-06011 NETASY: диалог слишком длинный
  • ORA-06017 NETASY: провалено получение сообщения
  • ORA-06018 NETASY: провалена отправка сообщения
  • ORA-06019 NETASY: неверное имя пользователя (строка соединения)
  • ORA-06020 NETASY: инициализация провалена
  • ORA-06021 NETASY: соединение провалено
  • ORA-06022 NETASY: провалено открытие канала
  • ORA-06023 NETASY: провалено открытие порта
  • ORA-06024 NETASY: ошибка VTM
  • ORA-06025 NETASY: ошибка конфигурации
  • ORA-06025 NETASY: ошибка конфигурации
  • ORA-06026 NETASY: провалено закрытие порта
  • ORA-06027 NETASY: провалено закрытие канала
  • ORA-06028 NETASY: невозможно инициализировать для журналирования
  • ORA-06029 NETASY: провалено назначение порта
  • ORA-06030 NETDNT: соединение провалено, нераспознанное имя узла
  • ORA-06031 NETDNT: соединение провалено, нераспознаное имя объекта
  • ORA-06032 NETDNT: соединение провалено, данные доступа отклонены
  • ORA-06033 NETDNT: соединение провалено, партнерское соединение отклонено
  • ORA-06034 NETDNT: соединение провалено, партнер неожиданно вышел
  • ORA-06035 NETDNT: соединение провалено, недостаточно привилегий
  • ORA-06037 NETDNT: соединение провалено, узел недоступен
  • ORA-06039 NETDNT: соединение провалено
  • ORA-06040 NETDNT: неверное имя пользователя
  • ORA-06041 NETDNT: отключение провалено
  • ORA-06042 NETDNT: получение сообщения провалено
  • ORA-06043 NETDNT: отправка сообщения провалена
  • ORA-06044 NETDNT: соединение провалено, превышена квота на количество байт

Ошибки ORA-06100 — ORA-06199

  • ORA-06102 NETTCP: нельзя выделить контекстную зону
  • ORA-06105 NETTCP: неизвестный удаленный хост
  • ORA-06106 NETTCP: провалено соединение сокета
  • ORA-06107 NETTCP: сетевой сервер Oracle не найден
  • ORA-06108 NETTCP: соединение с хостом провалено
  • ORA-06109 NETTCP: провалено получение сообщения
  • ORA-06110 NETTCP: провалена отправка сообщения
  • ORA-06111 NETTCP: отключение не удалось
  • ORA-06112 NETTCP: неверный размер буфера
  • ORA-06113 NETTCP: слишком много соединений
  • ORA-06114 NETTCP: поиск SID не удался
  • ORA-06115 NETTCP: невозможно создать логику Oracle
  • ORA-06116 NETTCP: невозможно создать процесс ORASRV
  • ORA-06117 NETTCP: невозможно создать процесс ORASRV: превышена квота
  • ORA-06118 NETTCP: невозможно установить связь с ORASRV
  • ORA-06119 NETTCP: ложный клиентский запрос
  • ORA-06120 NETTCP: сетевой драйвер не загружен
  • ORA-06121 NETTCP: доступ не удался
  • ORA-06122 NETTCP: установка провалена
  • ORA-06123 NETTCP: нельзя установить KEEPALIVE
  • ORA-06124 NETTCP: истекло время ожидания ORASRV
  • ORA-06125 NETTCP: ORASRV неожиданно завершился
  • ORA-06126 NETTCP: ORASRV невозможно открыть сетевое соединение
  • ORA-06127 NETTCP: невозможно изменить имя пользователя
  • ORA-06128 NETTCP: невозможно создать почтовый ящик
  • ORA-06129 NETTCP: невозможно передать собственность сокета к ORASRV
  • ORA-06130 NETTCP: доступ к хосту запрещен
  • ORA-06131 NETTCP: пользовательский доступ запрещен
  • ORA-06132 NETTCP: доступ запрещен, неверный пароль
  • ORA-06133 NETTCP: файл не найден
  • ORA-06134 NETTCP: нарушение привелегий доступа к файлу
  • ORA-06135 NETTCP: соединение отклонено, сервер останавливается
  • ORA-06136 NETTCP: ошибка во время установления соединения
  • ORA-06137 NETTCP: ошибка во время установления соединения
  • ORA-06138 NETTCP: ошибка во время установления соединения
  • ORA-06140 NETTCP: нет такого пользователя
  • ORA-06141 NETTCP: нет привилегий для пользователя
  • ORA-06142 NETTCP: ошибка получения информации пользователя
  • ORA-06143 NETTCP: превышено максимальное количество соединений
  • ORA-06144 NETTCP: SID (база данных) недоступен
  • ORA-06145 NETTCP: невозможно запустить ORASRV: образы не установлены

Ошибки ORA-06200 — ORA-06299

  • ORA-06250 NETNTT: нельзя выделить буферы отправки и приема
  • ORA-06251 NETNTT: нельзя перевести имя адресного файла
  • ORA-06252 NETNTT: не могу открыть адресный файл
  • ORA-06253 NETNTT: нельзя прочитать аргументы из адресного файла
  • ORA-06254 NETNTT: нельзя распределить соединение с кубом
  • ORA-06255 NETNTT: нельзя прочитать pid удаленного процесса
  • ORA-06256 NETNTT: удаленное ветвление не удалось
  • ORA-06257 NETNTT: нельзя отправить команду фоновому процессу
  • ORA-06258 NETNTT: нельзя выделить контекстную зону
  • ORA-06259 NETNTT: нельзя прочитать из удаленного процесса
  • ORA-06260 NETNTT: нельзя записать в удаленный процесс
  • ORA-06261 NETNTT: неудача nrange()
  • ORA-06262 NETNTT: неудача nfconn()
  • ORA-06263 NETNTT: недостаточно памяти в pi_connect
  • ORA-06264 NETNTT: ошибка протокола данных
  • ORA-06265 NETNTT: ошибка протокола разрыва
  • ORA-06266 NETNTT: неверная длина записи
  • ORA-06267 NETNTT: неверное состояние
  • ORA-06268 NETNTT: нельзя прочитать /etc/oratab

Ошибки ORA-06300 — ORA-06399

  • ORA-06300 IPA: Отключение не удалось
  • ORA-06301 IPA: Нельзя выделить контекстный драйвер
  • ORA-06302 IPA: нельзя подключится к удаленному хосту
  • ORA-06303 IPA: ошибка отправки сообщения
  • ORA-06304 IPA: ошибка получения сообщения
  • ORA-06305 IPA: недопустимый тип сообщения
  • ORA-06306 IPA: Ошибка записи длины сообщения
  • ORA-06307 IPA: нельзя сбросить соединение
  • ORA-06308 IPA: нет доступных соединений
  • ORA-06309 IPA: нет доступной очереди сообщений
  • ORA-06310 IPA: Переменная (ые) окружения не выствлена
  • ORA-06311 IPA: достигнуто максимальное число серверов
  • ORA-06312 IPA: указано неверное имя службы
  • ORA-06313 IPA: неудачная инициализация распределенной памяти
  • ORA-06314 IPA: установка события провалена
  • ORA-06315 IPA: неверная строка связи
  • ORA-06316 IPA: неверный SID базы данных
  • ORA-06317 IPA: локальный максимум пользователей превышен
  • ORA-06318 IPA: локальный максимум соединений превышен
  • ORA-06319 IPA: превышен максимум удаленных пользователей
  • ORA-06320 IPA: удаленный максимум соединений превышен
  • ORA-06321 IPA: нельзя достичь удаленной стороны
  • ORA-06322 IPA: фатальная ошибка распределенной памяти
  • ORA-06323 IPA: ошибка причины события

Ошибки ORA-06400 — ORA-06499

  • ORA-06400 NETCMN: не указано строки хоста по умолчанию
  • ORA-06401 NETCMN: неверный указатель драйвера
  • ORA-06402 NETCMN: ошибка получения сообщения разрыва
  • ORA-06403 Невозмжно выделить память
  • ORA-06404 NETCMN: неверное имя (строка соединения)
  • ORA-06405 NETCMN: ошибка сброса протокола
  • ORA-06406 NETCMN: ошибка отправки сообщения разрыва
  • ORA-06406 NETCMN: ошибка отправки сообщения разрыва
  • ORA-06407 NETCMN: невозможно установить окружение обработки
  • ORA-06408 NETCMN: некорректный формат сообщения
  • ORA-06413 Соединение не открыто
  • ORA-06416 NETCMN: ошибка на тесте
  • ORA-06419 NETCMN: сервер не может запустить Oracle
  • ORA-06420 NETCMN: поиск SID не удался
  • ORA-06421 NETCMN: обнаружена ошибка в считываемых данных
  • ORA-06422 NETCMN: ошибка в отправке данных
  • ORA-06423 NETCMN: ошибка в получении данных
  • ORA-06430 ssaio: штампы не совпадают
  • ORA-06431 ssaio: неверный номер блока
  • ORA-06432 ssaio: буфер не выровненный
  • ORA-06433 ssaio: ошибка LSEEK, невозможно найти запрошенный блок
  • ORA-06434 ssaio: ошибка чтения, невозможно прочитать указанный блок из файла базы данных
  • ORA-06435 ssaio: ошибка записи, невозможно записать требуемый блок в файл базы данных
  • ORA-06436 ssaio: неудачный асинхронный ввод/вывод по причине некорректных параметров
  • ORA-06437 ssaio: асинхранная запись не может записать в файл базы данных
  • ORA-06438 ssaio: асинхранное чтение не может прочитать файл базы данных
  • ORA-06439 ssaio: асинхронная запись вернула некорректное число байт
  • ORA-06440 ssaio: асинхронное чтение вернуло некорректное число байт
  • ORA-06441 ssvwatev: в вызов функции передан некорректный параметр
  • ORA-06442 ssvwatev: неудачное выполнение с неожиданным номером ошибки
  • ORA-06443 ssvpstev: в вызов функции передан некорректный параметр
  • ORA-06444 ssvwatev: неудачное выполнение с неожиданным номером ошибки
  • ORA-06445 ssvpstev: в вызов функции передан некорректный параметр
  • ORA-06446 ssvwatev: неудачное выполнение с неожиданным номером ошибки
  • ORA-06447 ssvpstev: в вызов функции передан некорректный параметр
  • ORA-06448 ssvwatev: неудачное выполнение с неожиданным номером ошибки
  • ORA-06449 Список IO или sysvendor не установлен

Ошибки ORA-06500 — ORA-06599

  • ORA-06500 PL/SQL: ошибка хранилища
  • ORA-06501 PL/SQL: программная ошибка
  • ORA-06502 PL/SQL: числовая или ошибка значения [значение]
  • ORA-06503 PL/SQL: функция возвращена без значения
  • ORA-06504 PL/SQL: возвращаемые типы результирующего набора переменных или запрос не совпадают
  • ORA-06505 PL/SQL: переменная требует более чем 32767 непрерывных байт памяти (расположенных последовательно)
  • ORA-06508 PL/SQL: не могу найти вызываемый программный модуль
  • ORA-06509 PL/SQL: ICD вектор пропущен для этого пакета
  • ORA-06510 PL/SQL: необработанное определенное пользователем исключение
  • ORA-06511 PL/SQL: курсор уже открыт
  • ORA-06512 в [значение] строка [значение]
  • ORA-06513 PL/SQL: индекс для PL/SQL таблицы за пределами диапазона для массива языка
  • ORA-06514 PL/SQL: удаленный вызов не может быть обратботан сервером
  • ORA-06515 PL/SQL: необработанное исключение [значение]
  • ORA-06516 PL/SQL: пакеты Probe не существуют или неработоспособные
  • ORA-06517 PL/SQL: ошибка Probe — [значение]
  • ORA-06518 PL/SQL: Версия Probe [значение] не совместима с версией [значение]
  • ORA-06519 Обнаружена активная автономная транзакция и сделан откат
  • ORA-06520 PL/SQL: Ошибка загрузки внешней библиотеки
  • ORA-06521 PL/SQL: Ошибка функции маппирования
  • ORA-06522 [значение]
  • ORA-06523 Превышено максимальное количество аргументов
  • ORA-06524 Неподдерживаемая опция : [значение]
  • ORA-06525 Несовпадение длины для данных CHAR или RAW
  • ORA-06526 Невозможно загрузить библиотеку PL/SQL
  • ORA-06527 Ошибка внешней процедуры SQLLIB: [значение]
  • ORA-06528 Ошибка выполнения профайлера PL/SQL
  • ORA-06529 Несовпадение версий — профайлер PL/SQL
  • ORA-06530 Ссылка на неинициализированный составной объект
  • ORA-06531 Ссылка на неинициализированную коллекцию
  • ORA-06532 Нижний индекс за пределами диапазона
  • ORA-06533 Нижний индекс далеко от расчетного
  • ORA-06534 Невозможно получить доступ к пакету Serially Reusable [значение]
  • ORA-06535 Строка предложения в [значение] NULL или с нулевой длиной
  • ORA-06536 Связанная переменная IN граничит с позицией OUT
  • ORA-06537 Связанная переменная OUT граничит с позицией IN
  • ORA-06538 Предложение нарушает [значение] прагму RESTRICT_REFERENCES
  • ORA-06539 Целью OPEN должен быть запрос
  • ORA-06540 PL/SQL: ошибка компиляции
  • ORA-06541 PL/SQL: ошибка компиляции — компиляция прервана
  • ORA-06544 PL/SQL: внутренняя ошибка, аргументы: [значение], [значение], [значение], [значение], [значение], [значение], [значение], [значение]
  • ORA-06545 PL/SQL: ошибка компиляции — компиляция прервана
  • ORA-06546 Предложение DDL выполнено в недопустимом контексте
  • ORA-06547 Предложение RETURNING должно использоваться с предложениями INSERT, UPDATE или DELETE
  • ORA-06548 Больше строк не требуется
  • ORA-06549 PL/SQL: неудачное динамическое открытие общего объекта (DDL): [значение]
  • ORA-06550 Строка: [значение], колонка [значение]: [значение]
  • ORA-06554 Пакет DBMS_STANDARD должен быть создан до использования PL/SQL
  • ORA-06555 Это имя зарезервировано для использования пользователем SYS
  • ORA-06556 Конвейер пуст, нельзя осуществить запрос unpack_message
  • ORA-06557 Пустые значения не разрешены для любых параметров для конвейера
  • ORA-06558 Буфер в dbms_pipe полон. Больше элементов не позволено
  • ORA-06559 Запрошен неверный тип данных, [значение], актуальный тип данных [значение]
  • ORA-06560 Позиция [значение] отрицательное или больше, чем размер буфера [значение]
  • ORA-06561 Указанное предложение не поддерживается пакетом DBMS_SQL
  • ORA-06562 Тип выходных аргументов должен совпадать с типом столбца или связанной переменной
  • ORA-06563 Указана процедура/функция верхнего уровня, нельзя иметь зависимые доли
  • ORA-06564 Объект [значение] не существует
  • ORA-06565 Нельзя выполнить [значение] внутри хранимой процедуры
  • ORA-06566 Указано неверное число строк
  • ORA-06567 Указано неверное количество значений
  • ORA-06568 Вызвана устаревшая ICD процедура
  • ORA-06569 Коллекция ограничена bind_array не содержащем элементов
  • ORA-06570 Объект разделяемого пула не существует, нельзя закрепить
  • ORA-06572 Функция [значение] содержит OUT аргументы
  • ORA-06573 Функция [значение] изменяет состояние пакета, и не может быть использована здесь
  • ORA-06574 Функция [значение] ссылается на состояние пакета, нельзя выполнить удаленно
  • ORA-06575 Пакет или функция [значение] в состоянии INVALID
  • ORA-06576 Неверное имя функции или процедуры
  • ORA-06577 Выходной параметр не связанная переменная
  • ORA-06578 Выходной параметр не может быть дублирующим связыванием
  • ORA-06579 Связанная переменная не настолько большая, для хранения выходного значения
  • ORA-06580 Недостаточно памяти для Hash Join при сохранении больших строк в памяти
  • ORA-06592 При выполнении предложения CASE, CASE не найден
  • ORA-06593 [значение] не поддерживается модулями PL/SQL скомпилированными для этой среды

Ошибки ORA-06600 — ORA-06699

  • ORA-06600 LU6.2 драйвер: Программное обеспечение SNA не загружено
  • ORA-06601 LU6.2 драйвер: Неверный ID базы данных [значение]
  • ORA-06602 LU6.2 драйвер: Ошибка распределения контекстной зоны
  • ORA-06603 LU6.2 драйвер: Ошибка распределения памяти
  • ORA-06604 LU6.2 драйвер: невозможно выделить сеанс с удаленным LU
  • ORA-06605 LU6.2 драйвер: Неожиданный возврат строки
  • ORA-06606 LU6.2 драйвер: Неожиданный отклик от SNA
  • ORA-06607 LU6.2 драйвер: Обнаружен сброс в состоянии отправки
  • ORA-06608 LU6.2 драйвер: Обнаружен сброс в состоянии приема
  • ORA-06610 LU6.2 драйвер: Неудача во время высвобождения памяти
  • ORA-06616 LU6.2 драйвер: Прикрепление LU не удалось
  • ORA-06622 LU6.2 драйвер: Невозможно прикрепиться к SNA

Ошибки ORA-06700 — ORA-06799

  • ORA-06700 TLI драйвер: сообщение некорректного типа от хоста
  • ORA-06701 TLI драйвер: записано некорректное количество байт
  • ORA-06702 TLI драйвер: нельзя выделить контекстную зону
  • ORA-06703 TLI драйвер: неудачная отправка сообщения разрыва
  • ORA-06704 TLI драйвер: не удалось получение ожидаемого сообщения разрыва
  • ORA-06705 TLI драйвер: удаленный узел не известен
  • ORA-06706 TLI драйвер: служба не найдена
  • ORA-06707 TLI драйвер: соединение не удалось
  • ORA-06708 TLI драйвер: не удалось получение сообщения
  • ORA-06709 TLI драйвер: не удалось отправить сообщение
  • ORA-06710 TLI драйвер: не удалась отправка сообщения разрыва
  • ORA-06711 TLI драйвер: ошибка при связывании
  • ORA-06712 TLI драйвер: ошибка при принятии
  • ORA-06713 TLI драйвер: ошибка при соединении
  • ORA-06720 TLI драйвер: поиск SID не удался
  • ORA-06721 TLI драйвер: запрос от поддельного клиента
  • ORA-06722 TLI драйвер: начальная установка соединения не удалась
  • ORA-06730 TLI драйвер: невозможно открыто клонированное устройство
  • ORA-06731 TLI драйвер: нельзя разместить t_call
  • ORA-06732 TLI драйвер: нельзя разместить t_disconn
  • ORA-06733 TLI драйвер: получение отключения не удалось
  • ORA-06734 TLI драйвер: нельзя подключиться
  • ORA-06735 TLI драйвер: клиент не может закрыть ошибочное подключение
  • ORA-06736 TLI драйвер: сервер не запущен
  • ORA-06737 TLI драйвер: соединение не удалось
  • ORA-06741 TLI драйвер: невозможно открыть устройство протокола
  • ORA-06742 TLI драйвер: нельзя разместить t_bind
  • ORA-06743 TLI драйвер: нельзя разместить t_bind
  • ORA-06744 TLI драйвер: нельзя связать прослушиватель
  • ORA-06745 TLI драйвер: прослушиватель уже запущен
  • ORA-06746 TLI драйвер: нельзя выделить t_call
  • ORA-06747 TLI драйвер: ошибка в прослушивании
  • ORA-06748 TLI драйвер: невозможно выделить t_discon
  • ORA-06749 TLI драйвер: опция через сеть не позволена
  • ORA-06750 TLI драйвер: синхронизация не удалась
  • ORA-06751 TLI драйвер: неодинаковая граница адресов
  • ORA-06752 TLI драйвер: ошибка в установке сигнала
  • ORA-06753 TLI драйвер: сопоставление имя-адрес не удалось
  • ORA-06754 TLI драйвер: невозможно получить адрес локального хоста
  • ORA-06755 TLI драйвер: нельзя закрыть конечную точку транспорта
  • ORA-06756 TLI драйвер: не могу открыть oratab
  • ORA-06757 TLI драйвер: сервер получил неверную команду
  • ORA-06760 TLI драйвер: истекло время чтения
  • ORA-06761 TLI драйвер: ошибка отправки
  • ORA-06762 TLI драйвер: ошибка чтения
  • ORA-06763 TLI драйвер: ошибка отправки отключения
  • ORA-06764 TLI драйвер: ошибка чтения отключения
  • ORA-06765 TLI драйвер: ошибка ожидания высвобождения
  • ORA-06766 TLI драйвер: закрытие не удалось во время высвобождения
  • ORA-06767 TLI драйвер: распределение во время высвобождения не удалось
  • ORA-06770 TLI драйвер: ошибка отправки версии
  • ORA-06771 TLI драйвер: ошибка чтения версии
  • ORA-06772 TLI драйвер: ошибка отправки команды
  • ORA-06773 TLI драйвер: ошибка чтения команды
  • ORA-06774 TLI драйвер: ошибка отправки режима разрыва
  • ORA-06775 TLI драйвер: ошибка чтения режима разрыва
  • ORA-06776 TLI драйвер: ошибка отправки параметров
  • ORA-06777 TLI драйвер: ошибка чтения параметров
  • ORA-06778 TLI драйвер: ошибка отправки кода
  • ORA-06779 TLI драйвер: ошибка чтения кода
  • ORA-06780 TLI драйвер: получение кода ошибки не удалось
  • ORA-06781 TLI драйвер: ошибка чтения строки согласования
  • ORA-06790 TLI драйвер: опрос не удался
  • ORA-06791 TLI драйвер: опрос вернул ошибку
  • ORA-06792 TLI драйвер: сервер не может запустить Oracle
  • ORA-06793 TLI драйвер: сервер не может создать новый процесс
  • ORA-06794 TLI драйвер: теневой процесс не может получить информацию о протоколе

Ошибки ORA-06800 — ORA-06899

  • ORA-06800 TLI драйвер: клиент SQL*Net SPX в другом состоянии во время переподключения
  • ORA-06801 TLI драйвер: прослушивание при переподключении SPX сервера не удалось
  • ORA-06802 TLI драйвер: невозможно открыть файл /etc/netware/yellowpages
  • ORA-06803 TLI драйвер: файл устройства IPX не может быть открыт
  • ORA-06804 TLI драйвер: не могу связать IPX адрес в инициализации
  • ORA-06805 TLI драйвер: нельзя отправить датаграмму SAP пакета для SPX
  • ORA-06806 TLI драйвер: нельзя завершить инициализацию протокола для SPX
  • ORA-06807 TLI драйвер: нельзя открыть файл драйвера сетевого устройства
  • ORA-06808 TLI драйвер: нельзя слинковать IPX и сетевые потоки
  • ORA-06809 TLI драйвер: нельзя очистить сеть IPX при инициализации SAP
  • ORA-06810 TLI драйвер: нельзя установить сеть IPX при нициализации SAP
  • ORA-06812 TLI драйвер: не могу прочитать адрес узла сети
  • ORA-06813 TLI драйвер: настроенный сетевой адрес некорректный
  • ORA-06814 TLI драйвер: файл SPX устройства не может быть открыт
  • ORA-06815 TLI драйвер: нельзя слинковать SPX и IPX потоки
  • ORA-06816 TLI драйвер: нельзя установить адреса SPX SAP
  • ORA-06817 TLI драйвер: не могу прочитать сетевой адрес Novell

Ошибки ORA-06900 — ORA-06999

  • ORA-06900 CMX: нельзя прочитать TNS директорию
  • ORA-06901 CMX: нет локального имени сопоставленного для локального приложения
  • ORA-06902 CMX: нельзя прикрепить к подсистеме cmx
  • ORA-06903 CMX: нельзя прочитать транспортный адрес удаленного приложения
  • ORA-06904 CMX: нет доступных транспортных адресов для удаленного приложения
  • ORA-06905 CMX: ошибка подключения
  • ORA-06906 CMX: не удается получить максимальный размер пакета из CMX
  • ORA-06907 CMX: ошибка во время подтверждения подключения
  • ORA-06908 CMX: ошибка во время передачи ORACLE_SID
  • ORA-06909 CMX: ошибка во время подтверждения ORACLE_SID
  • ORA-06910 CMX: нельзя запустить процесс Oracle на удаленной машине
  • ORA-06911 CMX: t_event вернула ERROR
  • ORA-06912 CMX: ошибка записи в datarq
  • ORA-06913 CMX: ошибка во время перенаправления подключения
  • ORA-06914 CMX: неожиданное событие во время запуска Oracle
  • ORA-06915 CMX: неизвестное t_event в datarq
  • ORA-06916 CMX: ошибка в чтении данных (t_datain)
  • ORA-06917 CMX: ошибка в чтении данных (слишком много байт прочитано)
  • ORA-06918 CMX: T_NOEVENT во время ожидания события
  • ORA-06919 CMX: ошибка во время записи запроса (неизвестное событие)
  • ORA-06920 CMX: getbrkmsg недопустимый тип данных
  • ORA-06921 CMX: getdatmsg недопустимый тип данных
  • ORA-06922 CMX: неверная длина записи
  • ORA-06923 CMX: недопустимое условие разрыва
  • ORA-06924 CMX: неверная длина сообщения разрыва
  • ORA-06925 CMX: отключение во время запроса подключения
  • ORA-06926 CMX: T_ERROR во время чтения данных
  • ORA-06927 CMX: T_DATAIN получено до прочтения всех данных
  • ORA-06928 CMX: неверный ORACLE_SID
  • ORA-06929 CMX: ошибка при отправке ORACLE_SID
  • ORA-06930 CMX: ошибка при проверке ORACLE_SID
  • ORA-06931 CMX: ошибка во время read_properties для сервера
  • ORA-06932 CMX: ошибка в локальном имени
  • ORA-06933 CMX: ошибка во время присоединения
  • ORA-06950 Нет ошибки
  • ORA-06951 Ошибка вызова операционной системы
  • ORA-06952 Удаленный выпуск завершения связи до пакета сброса
  • ORA-06953 Недостаточно виртуальной памяти
  • ORA-06954 Недопустимое имя файла
  • ORA-06955 Количество серверов баз данных превышает допустимое
  • ORA-06956 Не удалось получить имя локального хоста
  • ORA-06957 Нет доступных SID
  • ORA-06958 Нет доступа к файлу конфигурации
  • ORA-06959 Квота на буферный I/O слишком мала
  • ORA-06960 Нет доступа к журнальному файлу
  • ORA-06961 Недостаточно привилегий для операции
  • ORA-06970 X.25 драйвер: удаленный хост не известен
  • ORA-06973 X.25 драйвер: неверный размер буфера
  • ORA-06974 X.25 драйвер: поиск SID не удался
  • ORA-06975 X.25 драйвер: подключение к хосту не удалось
  • ORA-06976 X.25 драйвер: неудача при создании конечной точки
  • ORA-06977 X.25 драйвер: X.25 Level 2 провал
  • ORA-06978 X.25 драйвер: слишком много попыток обратного вызова
  • ORA-06979 X.25 драйвер: сервер не может запустить Oracle

На правах рекламы (см.
условия):


Ключевые слова для поиска сведений о значениях ошибок Oracle в диапазоне ORA-06000 — ORA-06999:

На русском языке: ошибки Oracle, коды оракловых ошибок;

На английском языке: ORA-06000 — ORA-06999.


Страница обновлена 28.09.2022

Яндекс.Метрика


Today is the day of tongue-in-cheek errors.
I mean, it takes 5 seconds for an experienced programmer to spot the problem, but still i think there could be someone out there that might find this useful information.

Say you have a function returning a value as result of a query and after doing some tests you realize that there can be a situation where it throws a no data found error because the condition in the WHERE clause is not met.

Then you decide to trap this error and return zero as follows:

CREATE PACKAGE test
as
function test_fn return integer;
end;
/
CREATE PACKAGE BODY test
as
function test_fn
return integer
is
n integer;
begin
select 123
into n
from dual
where 1=0; -- i'm forcing the failure of WHERE

return n;
exception
when no_data_found then
n := 0;
end test_fn;
end test;
/
select test.test_fn from dual;

ORA-06503: PL/SQL: Function returned without value

As you can see, i forgot to add something in the error trapping block:

  ...
when no_data_found then
n := 0;
return n; -- this is necessary!
end test_fn;
end test;

Note that in this case i could have written directly

return 0;

but in real applications sometimes one wants to perform additional things, like retrieving another value from a different table or from another procedure, so one could actually need a variable to store the intermediate result prior to returning the value to the caller.

Then you forget to add one more return statement and bang, ORA-06503!
;-)

See message translations for ORA-06503 and search additional resources.


ORA-06503: PL/SQL: funzione restituita senza valore
ORA-06503: PL/SQL: La función no ha devuelto ningún valor
ORA-06503: PL/SQL: La funció no retorna cap valor
ORA-06503: PL/SQL : La fonction ne ramène aucune valeur
ORA-06503: PL/SQL: Funktion hat keinen Wert zurückgegeben
ORA-06503: PL/SQL: Επιστροφή από συνάρτηση χωρίς τιμή
ORA-06503: PL/SQL: Funktion returnerede uden værdi
ORA-06503: PL/SQL: funktion returnerade utan värde
ORA-06503: PL/SQL: Funksjonen returnerte uten verdi
ORA-06503: PL/SQL: Toiminto on palautunut ilman arvoa
ORA-06503: PL/SQL: A függvény érték nélkül tért vissza
ORA-06503: PL/SQL: Funcţia nu a returnat nici o valoare
ORA-06503: PL/SQL: functie teruggegeven zonder waarde.
ORA-06503: PL/SQL: Função retornada sem valor
ORA-06503: PL/SQL: Função devolvida sem valor
ORA-06503: PL/SQL: Возврат функции без значения
ORA-06503: PL/SQL: funkce nevrátila hodnotu
ORA-06503: PL/SQL: Návrat funkcie bez hodnoty
ORA-06503: PL/SQL: Powrót z funkcji bez wartości
ORA-06503: PL/SQL: Fonksiyon değer döndürmedi

ORA-06503: PL/SQL: Function returned without value in Oracle

Reason why this error occurs??

1) Function does not have return statement.

2) A null value is returned and no exception handling

3) A null value is returned to a variable, and that variable is further being used in the same function.


Solutions

1) Simply return the variable which contains the result value.

2) You need to do exception handling in the function.

Exception when others then

       return 0;       /* Return any number for Number return type of function*/

       return ‘abc’;  /* You can return number/character for Character return type of function*/

3) I have mentioned an example below.

We created a function in which employee number is passed as parameter n we place its hire date into var1.  if var1 is greater than ’01-JAN-2012′ then return 100 else return 0;

create or replace function test (p_emp_no in number)

   return number

is

   result  number;

   var1       number;

begin

  select ppf.original_date_of_hire into var1 from per_people_f ppf

   where employee_number = p_emp_no;

   if var1 > ’01-JAN-2012′ then

        result
= 100;

   else

        result
=  0;

   end if;

   return nvl(result,0); 

exception

   when others

   then

      return 0;

end;

Function will work fine unless an employee number is passed which has no hire date. Function will go into exception. So you would not know what’s the error.

if we remove the exception, we get the error, ORA-06503: PL/SQL: Function returned without value

To correct this issue, what we need to do is…Please see the code below in red.

Place a Begin End block around that query and place exception in this block as well. if employee has no hire date, you may return some dummy value.

BEGIN

select ppf.original_date_of_hire into var1 from per_people_f ppf 

   where employee_number = p_emp_no;

Exception when others then

    var1 = ’01-JAN-2001′;

END;

so var1 would contain some value before it is passed to condition used below.

Feedback is very important for my improvement. So please do comment.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ora 06502 описание ошибки
  • Ora 06502 pl sql буфер символьных строк слишком маленький ошибка числа или значения
  • Ora 06502 pl sql numeric or value error null index table key value
  • Ora 06502 pl sql numeric or value error invalid lob locator specified
  • Oracle dbms utility format error backtrace

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии