Код ошибки 4068

0

ERR_NO_ERROR

Нет ошибки

1

ERR_NO_RESULT

Нет ошибки, но результат неизвестен

2

ERR_COMMON_ERROR

Общая ошибка

3

ERR_INVALID_TRADE_PARAMETERS

Неправильные параметры

4

ERR_SERVER_BUSY

Торговый сервер занят

5

ERR_OLD_VERSION

Старая версия клиентского терминала

6

ERR_NO_CONNECTION

Нет связи с торговым сервером

7

ERR_NOT_ENOUGH_RIGHTS

Недостаточно прав

8

ERR_TOO_FREQUENT_REQUESTS

Слишком частые запросы

9

ERR_MALFUNCTIONAL_TRADE

Недопустимая операция, нарушающая функционирование сервера

64

ERR_ACCOUNT_DISABLED

Счет заблокирован

65

ERR_INVALID_ACCOUNT

Неправильный номер счета

128

ERR_TRADE_TIMEOUT

Истек срок ожидания совершения сделки

129

ERR_INVALID_PRICE

Неправильная цена

130

ERR_INVALID_STOPS

Неправильные стопы

131

ERR_INVALID_TRADE_VOLUME

Неправильный объем

132

ERR_MARKET_CLOSED

Рынок закрыт

133

ERR_TRADE_DISABLED

Торговля запрещена

134

ERR_NOT_ENOUGH_MONEY

Недостаточно денег для совершения операции

135

ERR_PRICE_CHANGED

Цена изменилась

136

ERR_OFF_QUOTES

Нет цен

137

ERR_BROKER_BUSY

Брокер занят

138

ERR_REQUOTE

Новые цены

139

ERR_ORDER_LOCKED

Ордер заблокирован и уже обрабатывается

140

ERR_LONG_POSITIONS_ONLY_ALLOWED

Разрешена только покупка

141

ERR_TOO_MANY_REQUESTS

Слишком много запросов

145

ERR_TRADE_MODIFY_DENIED

Модификация запрещена, так как ордер слишком близок к рынку

146

ERR_TRADE_CONTEXT_BUSY

Подсистема торговли занята

147

ERR_TRADE_EXPIRATION_DENIED

Использование даты истечения ордера запрещено брокером

148

ERR_TRADE_TOO_MANY_ORDERS

Количество открытых и отложенных ордеров достигло предела, установленного брокером

149

ERR_TRADE_HEDGE_PROHIBITED

Попытка открыть противоположный ордер в случае, если хеджирование запрещено

150

ERR_TRADE_PROHIBITED_BY_FIFO

Попытка закрыть позицию по инструменту в противоречии с правилом FIFO

4000

ERR_NO_MQLERROR

Нет ошибки

4001

ERR_WRONG_FUNCTION_POINTER

Неправильный указатель функции

4002

ERR_ARRAY_INDEX_OUT_OF_RANGE

Индекс массива — вне диапазона

4003

ERR_NO_MEMORY_FOR_CALL_STACK

Нет памяти для стека функций

4004

ERR_RECURSIVE_STACK_OVERFLOW

Переполнение стека после рекурсивного вызова

4005

ERR_NOT_ENOUGH_STACK_FOR_PARAM

На стеке нет памяти для передачи параметров

4006

ERR_NO_MEMORY_FOR_PARAM_STRING

Нет памяти для строкового параметра

4007

ERR_NO_MEMORY_FOR_TEMP_STRING

Нет памяти для временной строки

4008

ERR_NOT_INITIALIZED_STRING

Неинициализированная строка

4009

ERR_NOT_INITIALIZED_ARRAYSTRING

Неинициализированная строка в массиве

4010

ERR_NO_MEMORY_FOR_ARRAYSTRING

Нет памяти для строкового массива

4011

ERR_TOO_LONG_STRING

Слишком длинная строка

4012

ERR_REMAINDER_FROM_ZERO_DIVIDE

Остаток от деления на ноль

4013

ERR_ZERO_DIVIDE

Деление на ноль

4014

ERR_UNKNOWN_COMMAND

Неизвестная команда

4015

ERR_WRONG_JUMP

Неправильный переход

4016

ERR_NOT_INITIALIZED_ARRAY

Неинициализированный массив

4017

ERR_DLL_CALLS_NOT_ALLOWED

Вызовы DLL не разрешены

4018

ERR_CANNOT_LOAD_LIBRARY

Невозможно загрузить библиотеку

4019

ERR_CANNOT_CALL_FUNCTION

Невозможно вызвать функцию

4020

ERR_EXTERNAL_CALLS_NOT_ALLOWED

Вызовы внешних библиотечных функций не разрешены

4021

ERR_NO_MEMORY_FOR_RETURNED_STR

Недостаточно памяти для строки, возвращаемой из функции

4022

ERR_SYSTEM_BUSY

Система занята

4023

ERR_DLLFUNC_CRITICALERROR

Критическая ошибка вызова DLL-функции

4024

ERR_INTERNAL_ERROR

Внутренняя ошибка

4025

ERR_OUT_OF_MEMORY

Нет памяти

4026

ERR_INVALID_POINTER

Неверный указатель

4027

ERR_FORMAT_TOO_MANY_FORMATTERS

Слишком много параметров форматирования строки

4028

ERR_FORMAT_TOO_MANY_PARAMETERS

Число параметров превышает число параметров форматирования строки

4029

ERR_ARRAY_INVALID

Неверный массив

4030

ERR_CHART_NOREPLY

График не отвечает

4050

ERR_INVALID_FUNCTION_PARAMSCNT

Неправильное количество параметров функции

4051

ERR_INVALID_FUNCTION_PARAMVALUE

Недопустимое значение параметра функции

4052

ERR_STRING_FUNCTION_INTERNAL

Внутренняя ошибка строковой функции

4053

ERR_SOME_ARRAY_ERROR

Ошибка массива

4054

ERR_INCORRECT_SERIESARRAY_USING

Неправильное использование массива-таймсерии

4055

ERR_CUSTOM_INDICATOR_ERROR

Ошибка пользовательского индикатора

4056

ERR_INCOMPATIBLE_ARRAYS

Массивы несовместимы

4057

ERR_GLOBAL_VARIABLES_PROCESSING

Ошибка обработки глобальных переменных

4058

ERR_GLOBAL_VARIABLE_NOT_FOUND

Глобальная переменная не обнаружена

4059

ERR_FUNC_NOT_ALLOWED_IN_TESTING

Функция не разрешена в тестовом режиме

4060

ERR_FUNCTION_NOT_CONFIRMED

Функция не разрешена

4061

ERR_SEND_MAIL_ERROR

Ошибка отправки почты

4062

ERR_STRING_PARAMETER_EXPECTED

Ожидается параметр типа string

4063

ERR_INTEGER_PARAMETER_EXPECTED

Ожидается параметр типа integer

4064

ERR_DOUBLE_PARAMETER_EXPECTED

Ожидается параметр типа double

4065

ERR_ARRAY_AS_PARAMETER_EXPECTED

В качестве параметра ожидается массив

4066

ERR_HISTORY_WILL_UPDATED

Запрошенные исторические данные в состоянии обновления

4067

ERR_TRADE_ERROR

Ошибка при выполнении торговой операции

4068

ERR_RESOURCE_NOT_FOUND

Ресурс не найден

4069

ERR_RESOURCE_NOT_SUPPORTED

Ресурс не поддерживается

4070

ERR_RESOURCE_DUPLICATED

Дубликат ресурса

4071

ERR_INDICATOR_CANNOT_INIT

Ошибка инициализации пользовательского индикатора

4072

ERR_INDICATOR_CANNOT_LOAD

Ошибка загрузки пользовательского индикатора

4073

ERR_NO_HISTORY_DATA

Нет исторических данных

4074

ERR_NO_MEMORY_FOR_HISTORY

Не хватает памяти для исторических данных

4075

ERR_NO_MEMORY_FOR_INDICATOR

Не хватает памяти для расчёта индикатора

4099

ERR_END_OF_FILE

Конец файла

4100

ERR_SOME_FILE_ERROR

Ошибка при работе с файлом

4101

ERR_WRONG_FILE_NAME

Неправильное имя файла

4102

ERR_TOO_MANY_OPENED_FILES

Слишком много открытых файлов

4103

ERR_CANNOT_OPEN_FILE

Невозможно открыть файл

4104

ERR_INCOMPATIBLE_FILEACCESS

Несовместимый режим доступа к файлу

4105

ERR_NO_ORDER_SELECTED

Ни один ордер не выбран

4106

ERR_UNKNOWN_SYMBOL

Неизвестный символ

4107

ERR_INVALID_PRICE_PARAM

Неправильный параметр цены для торговой функции

4108

ERR_INVALID_TICKET

Неверный номер тикета

4109

ERR_TRADE_NOT_ALLOWED

Торговля не разрешена. Необходимо включить опцию «Разрешить советнику торговать» в свойствах эксперта

4110

ERR_LONGS_NOT_ALLOWED

Ордера на покупку не разрешены. Необходимо проверить свойства эксперта

4111

ERR_SHORTS_NOT_ALLOWED

Ордера на продажу не разрешены. Необходимо проверить свойства эксперта

4112

ERR_TRADE_EXPERT_DISABLED_BY_SERVER

Автоматическая торговля с помощью экспертов/скриптов запрещена на стороне сервера

4200

ERR_OBJECT_ALREADY_EXISTS

Объект уже существует

4201

ERR_UNKNOWN_OBJECT_PROPERTY

Запрошено неизвестное свойство объекта

4202

ERR_OBJECT_DOES_NOT_EXIST

Объект не существует

4203

ERR_UNKNOWN_OBJECT_TYPE

Неизвестный тип объекта

4204

ERR_NO_OBJECT_NAME

Нет имени объекта

4205

ERR_OBJECT_COORDINATES_ERROR

Ошибка координат объекта

4206

ERR_NO_SPECIFIED_SUBWINDOW

Не найдено указанное подокно

4207

ERR_SOME_OBJECT_ERROR

Ошибка при работе с объектом

4210

ERR_CHART_PROP_INVALID

Неизвестное свойство графика

4211

ERR_CHART_NOT_FOUND

График не найден

4212

ERR_CHARTWINDOW_NOT_FOUND

Не найдено подокно графика

4213

ERR_CHARTINDICATOR_NOT_FOUND

Индикатор не найден

4220

ERR_SYMBOL_SELECT

Ошибка выбора инструмента

4250

ERR_NOTIFICATION_ERROR

Ошибка отправки push-уведомления

4251

ERR_NOTIFICATION_PARAMETER

Ошибка параметров push-уведомления

4252

ERR_NOTIFICATION_SETTINGS

Уведомления запрещены

4253

ERR_NOTIFICATION_TOO_FREQUENT

Слишком частые запросы отсылки push-уведомлений

4260

ERR_FTP_NOSERVER

Не указан FTP сервер

4261

ERR_FTP_NOLOGIN

Не указан FTP логин

4262

ERR_FTP_CONNECT_FAILED

Ошибка при подключении к FTP серверу

4263

ERR_FTP_CLOSED

Подключение к FTP серверу закрыто

4264

ERR_FTP_CHANGEDIR

На FTP сервере не найдена директория для выгрузки файла

4265

ERR_FTP_FILE_ERROR

Не найден файл в директории MQL4\Files для отправки на FTP сервер

4266

ERR_FTP_ERROR

Ошибка при передаче файла на FTP сервер

5001

ERR_FILE_TOO_MANY_OPENED

Слишком много открытых файлов

5002

ERR_FILE_WRONG_FILENAME

Неверное имя файла

5003

ERR_FILE_TOO_LONG_FILENAME

Слишком длинное имя файла

5004

ERR_FILE_CANNOT_OPEN

Ошибка открытия файла

5005

ERR_FILE_BUFFER_ALLOCATION_ERROR

Ошибка размещения буфера текстового файла

5006

ERR_FILE_CANNOT_DELETE

Ошибка удаления файла

5007

ERR_FILE_INVALID_HANDLE

Неверный хендл файла (файл закрыт или не был открыт)

5008

ERR_FILE_WRONG_HANDLE

Неверный хендл файла (индекс хендла отсутствует в таблице)

5009

ERR_FILE_NOT_TOWRITE

Файл должен быть открыт с флагом FILE_WRITE

5010

ERR_FILE_NOT_TOREAD

Файл должен быть открыт с флагом FILE_READ

5011

ERR_FILE_NOT_BIN

Файл должен быть открыт с флагом FILE_BIN

5012

ERR_FILE_NOT_TXT

Файл должен быть открыт с флагом FILE_TXT

5013

ERR_FILE_NOT_TXTORCSV

Файл должен быть открыт с флагом FILE_TXT или FILE_CSV

5014

ERR_FILE_NOT_CSV

Файл должен быть открыт с флагом FILE_CSV

5015

ERR_FILE_READ_ERROR

Ошибка чтения файла

5016

ERR_FILE_WRITE_ERROR

Ошибка записи файла

5017

ERR_FILE_BIN_STRINGSIZE

Размер строки должен быть указан для двоичных файлов

5018

ERR_FILE_INCOMPATIBLE

Неверный тип файла (для строковых массивов-TXT, для всех других-BIN)

5019

ERR_FILE_IS_DIRECTORY

Файл является директорией

5020

ERR_FILE_NOT_EXIST

Файл не существует

5021

ERR_FILE_CANNOT_REWRITE

Файл не может быть перезаписан

5022

ERR_FILE_WRONG_DIRECTORYNAME

Неверное имя директории

5023

ERR_FILE_DIRECTORY_NOT_EXIST

Директория не существует

5024

ERR_FILE_NOT_DIRECTORY

Указанный файл не является директорией

5025

ERR_FILE_CANNOT_DELETE_DIRECTORY

Ошибка удаления директории

5026

ERR_FILE_CANNOT_CLEAN_DIRECTORY

Ошибка очистки директории

5027

ERR_FILE_ARRAYRESIZE_ERROR

Ошибка изменения размера массива

5028

ERR_FILE_STRINGRESIZE_ERROR

Ошибка изменения размера строки

5029

ERR_FILE_STRUCT_WITH_OBJECTS

Структура содержит строки или динамические массивы

5200

ERR_WEBREQUEST_INVALID_ADDRESS

URL не прошел проверку

5201

ERR_WEBREQUEST_CONNECT_FAILED

Не удалось подключиться к указанному URL

5202

ERR_WEBREQUEST_TIMEOUT

Превышен таймаут получения данных

5203

ERR_WEBREQUEST_REQUEST_FAILED

Ошибка в результате выполнения HTTP запроса

Пользовательские ошибки

65536

ERR_USER_ERROR_FIRST

С этого кода начинаются ошибки, задаваемые пользователем

Problem Description
——————-

You receive the following
error from user-written and Oracle packages:

ORA-04068 existing
state of packages%s%s%s has been discarded

Causes of ORA-4068
Errors
————————-

1) A dependent object was altered
through a DDL statement.

When a package is compiled, all copies in
the shared pool are
flagged as invalid. The next invocation of the
package sees
this flag set, and goes to get a new copy.

If
the package is now invalid, cannot compile, or relied on
a package state
(i.e., package level variables), then this error
occurs because the
current copy of the package is no longer valid
and must be thrown
out.

2) The package was changed or recompiled (both DDL) and the
package
being used contains package level variables.

Same as
above. When a package dependency is altered through
DDL statements
(DROP, CREATE, ALTER, …), this package is
flagged as invalid through
cascade invalidation.

3) A package relied on another package that had no
body, and during
execution, the call failed.

When a package is
compiled, it only looks for the specification.
During execution, it
calls a non-existent routine and throws an
error. This error then
invalidates the package.

Another variation is if the procedure being
called is not defined
in the package body and possibly as a standalone
routine.

4) A remote dependent object has been altered through a DDL
statement.
This can occur between database instances or from Forms or
Reports
to a database instance.

The default remote dependency
model uses the Timestamp model, and when
an execution of a procedure
takes place, the remote object’s timestamp
is validated, thus forcing
invalidation on the local package.

To check for these situations,
several SQL statements can be run:

a. To check the package’s last
compile:

SELECT object_name, object_type, owner, status,
last_ddl_time FROM
dba_objects WHERE object_name = ‘<PACKAGE
NAME>’;

For example:

SQL> SELECT object_name,
object_type, owner, status, last_ddl_time FROM
2 dba_objects WHERE
object_name = ‘DBMS_SQL’;

OBJECT_NAME

————————————————————————

OBJECT_TYPE OWNER STATUS LAST_DDL_

————- —————————— ——- ———

DBMS_SQL
PACKAGE SYS VALID
13-JUL-99

DBMS_SQL
PACKAGE BODY SYS
VALID 13-JUL-99

DBMS_SQL
SYNONYM
PUBLIC VALID 13-JUL-99

SQL>

b.
To check the dependent objects last alteration:

SELECT object_name,
object_type, owner, status, last_ddl_time FROM
dba_objects WHERE (
object_name, object_type ) IN ( SELECT
referenced_name,
referenced_type FROM dba_dependencies WHERE name =
‘<PACKAGE NAME>’
);

For example:

SQL> SELECT object_name, object_type,
owner, status, last_ddl_time FROM
2 dba_objects WHERE (
object_name, object_type ) IN ( SELECT
3 referenced_name,
referenced_type FROM dba_dependencies WHERE name =
4 ‘DBMS_SQL’
);

OBJECT_NAME

——————————————————————————<br
> OBJECT_TYPE OWNER STATUS LAST_DDL_

————- —————————— ——- ———

DBMS_SQL
PACKAGE SYS VALID
13-JUL-99

DBMS_SYS_SQL
PACKAGE
SYS VALID 13-JUL-99

STANDARD

PACKAGE SYS VALID 13-JUL-99

SQL>

c. To check for existing errors on package:

SELECT
name, type, text FROM dba_errors WHERE name = ‘<PACKAGE NAME>’;

For
example:

SQL> SELECT name, type, text FROM dba_errors WHERE name =
‘DBMS_SQL’;

no rows selected

SQL>

Solutions
for ORA-4068 Errors
——————————

1) Simply
re-execute the package.

For example:

Session 1: Create the
package and body for package p_pack:

SQL> create or replace package
p_pack as
2 p_var varchar2(1);
3 procedure p;

4 end p_pack;
5 /

Package created.

SQL> create or
replace package body p_pack as
2 procedure p is
3
begin
4 p_var := 1;
5 end;
6 end
p_pack;
7 /

Package body created.

SQL>

Session 2: Execute the package:

SQL> exec p_pack.p

PL/SQL
procedure successfully completed.

SQL>

Session 1: Recreate
the package and body:

SQL> create or replace package p_pack
as
2 p_var varchar2(1);
3 procedure p;
4 end
p_pack;
5 /

Package created.

SQL> create or
replace package body p_pack as
2 procedure p is
3
begin
4 p_var := 1;
5 end;
6 end
p_pack;
7 /

Package body created.

SQL>

Session 2: Re-execute the package:

SQL> exec p_pack.p
begin
p_pack.p; end;

*
ERROR at line 1:
ORA-04068: existing
state of packages has been discarded
ORA-04061: existing state of package
«SCOTT.P_PACK» has been invalidated
ORA-04065: not executed, altered or
dropped package «SCOTT.P_PACK»
ORA-06508: PL/SQL: could not find program
unit being called
ORA-06512: at line 1

SQL> exec
p_pack.p

PL/SQL procedure successfully completed.

SQL>

2) Attempt to recompile the package by using the ALTER PACKAGE
command.

For example:

SQL> ALTER PACKAGE DBMS_SQL
COMPILE;

Package altered.

SQL>

3) Verify that proper
execute permissions have been provided. In PL/SQL
stored program units,
roles are disabled prior to the release of Oracle
8i. Oracle 8i definers
rights follow the previous release model of
requiring explicit permission
to the object.

In Oracle 8i, if invoker’s rights are set on the
routine, then execution
is done with roles enabled, so permission could
be granted explicitly to
the schema executing or through a role. For
additional information,
refer to [NOTE:74149.1] entitled «Invoker Rights
versus Definer Rights
in Oracle 8i».

For example:

SQL> SELECT owner, table_name, privilege FROM dba_tab_privs WHERE
2
table_name = ‘DBMS_SQL’ AND ( grantee = ‘SCOTT’ OR grantee = ‘PUBLIC’
);

OWNER TABLE_NAME

—————————— ——————————

PRIVILEGE
—————————————-

SYS DBMS_SQL
EXECUTE

SQL>

4) If errors exist (check DBA_ERRORS or USER_ERRORS views with
above
query), then take the appropriate action to correct the errors.

If the package is a system package that comes with the Oracle
server,
the scripts are located in $ORACLE_HOME/rdbms/admin. Most
packages have
their own .sql and .plb script to build the specification
and body (see
below for names).

System packages that come
with the Oracle server, as well as other Oracle
products, typically need
to be owned by a particular schema. In the case
of the Oracle server
DBMS packages, these need to be owned by SYS. If these
packages are not
owned by SYS, some packages start getting ‘ORA-6509 PL/SQL
ICD vector
missing for this package’ errors.

5) If duplicate SYS owned objects
exist, clean them up.

We have had this issues for couple of times and for time being, we were compiling schema to resolve this issue temporarily. Over couple of days we were searching for the permanent resolution.

We found below query that showed timestamp difference in our synonym. we recompiled synonym and It worked !!! It’s been almost a week and so far we have no issues. Here is the query that helped in our case.

**

select do.obj# d_obj,do.name d_name, do.type# d_type, po.obj# p_obj,po.name p_name,
to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp",
to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", 
decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X 
from sys.obj$ do, sys.dependency$ d, sys.obj$ po
where P_OBJ#=po.obj#(+) and D_OBJ#=do.obj# 
and do.status=1 /*dependent is valid*/ 
and po.status=1 /*parent is valid*/ 
and po.stime!=p_timestamp /*parent timestamp not match*/ 
order by 2,1;

**

I hope this helps someone who may be having this issue.

ORA-04068 возможно самое неприятное из существующих в Oracle исключений. В последних версиях сделано довольно много, для снижения частоты его возникновения, но к сожалению, неизбежно при перекомпиляции stateful пакетов оно неизбежно. Итак, посмотрим, что это такое и как с ним жить:

Создаем stateful package:

create or replace package p_test_dependant is
function getValue return varchar2;
procedure setValue(pVALUE in varchar2);
end;
/
create or replace package body p_test_dependant is
g_value varchar2(4000);
function getValue return varchar2
is
begin
return g_value;
end;
procedure setValue(pVALUE in varchar2)
is
begin
g_value := pVALUE;
end;
end;

Создаем второй пакет, из которого будем работать с первым:

create or replace package p_test_main is
procedure work(pVALUE in varchar2);
end;
/
create or replace package body p_test_main is
procedure work(pVALUE in varchar2)
is
begin
p_test_dependant.setValue(pVALUE);
dbms_output.put_line(p_test_dependant.getValue);
exception when others then
dbms_output.put_line(SQLERRM);
end;
end;

Запустим:

begin
p_test_main.work('AA');
end;

Все работает. Из второй сессии перекомпилируем p_test_dependant:

alter package p_test_dependant compile

Еще раз запустим:

Запустим:

begin
p_test_main.work('AA');
end;

--ORA-06508: PL/SQL: could not find program unit being called

Ни повторные запуски, ни перекомпиляция p_test_main не помогут устранить эту ошибку. Она так и будет возникать, пока мы не начнем новую сессию. Повторный запуск из блока исключений не решает эту проблему:

create or replace package p_test_main is
procedure work(pVALUE in varchar2);
end;
/
create or replace package body p_test_main is
ex_state_reset exception;
PRAGMA EXCEPTION_INIT(ex_state_reset, -6508);
procedure work(pVALUE in varchar2)
is
begin
p_test_dependant.setValue(pVALUE);
dbms_output.put_line(p_test_dependant.getValue);
exception
when ex_state_reset then
p_test_dependant.setValue(pVALUE);
dbms_output.put_line(p_test_dependant.getValue);
when others then
dbms_output.put_line(SQLERRM);
end;
end;

begin
p_test_main.work('AA');
end;

/*ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package "TEST.P_TEST_DEPENDANT" has been invalidated
ORA-04065: not executed, altered or dropped package "TEST.P_TEST_DEPENDANT"
ORA-06508: PL/SQL: could not find program unit being called: "TEST.P_TEST_DEPENDANT"
ORA-06512: at "TEST.P_TEST_MAIN", line 11
ORA-04061: existing state of package "TEST.P_TEST_DEPENDANT" has been invalidated
ORA-04065: not executed, altered or dropped package "TEST.P_TEST_DEPENDANT"
ORA-06508: PL/SQL: could not find program unit being called: "TEST.P_TEST_DEPENDANT"
ORA-06512: at line 2*/

Но повторный вызов отработает уже без ошибок, как и в случае с неперехваченным исключением. И к сожалению, других вариантов нет. Как утверждает asktom:

The issue here is the test 3 doesn’t raise the ORA-4068 back to the client. This is necessary to reset the package state. As stated in MOS note 1161225.1:

Subsequent attempts to call the package will either succeed if the package was successfully recompiled, or raise the underlying error if it was not. Error messages further down the error stack from the ORA_4068 indicate what prompted the recompilation to occur and may indicate whether a subsequent call will fail. An important proviso is that the ORA-4068 must be unhandled on exit from the subprogram in order for this solution to work. It is only when an unhandled ORA-4068 is returned by PL/SQL to ORACLE that the needed deinstantiations take place

It’s only when you leave ORA-4068 unhandled that Oracle resets the package state and validates the package.

«Exit from subprogram» в данном случае, увы, переход в хост-среду, а не выход из текущего или родительского pl/sql блока. Таким образом, для обработки этого исключения нужен внешний клиент.

P.S. При попытке перекомпилировать зависимый пакет в обработчике исключений возникает ORA-600.

Примечание:

1. Для поиска других кодов неисправностей воспользуйтесь поисковой строкой. Введите свой код неисправности в поле поиска и отправьте поиск.

2. Информация, содержащаяся на этом сайте, представлена исключительно в информационных целях. Мы не несем ответственности за любые действия, предпринятые вами в отношении вашего автомобиля. Если у вас есть какие-либо сомнения относительно ремонта вашего автомобиля, обратитесь к своему техническому специалисту.

Поиск всех кодов ошибок на одном сайте. Расшифровка Кодов ошибок obd2 по маркам автомобилей.

Знайдено кодов ошибок: 1

Код ошибки:

Значение ошибки


Похожие причины кодов

Коды ошибок по маркам автомобилей

Примечание:

1. Для поиска других кодов неисправностей воспользуйтесь поисковой строкой. Введите свой код неисправности в поле поиска и отправьте поиск.

2. Информация, содержащаяся на этом сайте, представлена исключительно в информационных целях. Мы не несем ответственности за любые действия, предпринятые вами в отношении вашего автомобиля. Если у вас есть какие-либо сомнения относительно ремонта вашего автомобиля, обратитесь к своему техническому специалисту.

Copyright © 2021. Коды ошибок OBD-II с расшифровкой на русском языке — возможные причины, описание и варианты по устранению ошибок.

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

Интересное по теме:

  • Код ошибки 4062 билайн телевидение
  • Код ошибки 4062 билайн тв что делать
  • Код ошибки 406000
  • Код ошибки 4060
  • Код ошибки 406 плей маркет

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

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