Страница 1 из 1

Оракл. Переход на 29 атлантис

Добавлено: 12 июн 2010, 15:28
Andrey
Добрый день.
В схеме остается один объект с инвалидным статусом

SQL> select object_name,owner from all_objects where status='INVALID';

OBJECT_NAME OWNER
------------------------------ ------------------------------
GAL_SYSFUNC_PKG GAL8

При компиляции пакета получаю ошибку

Line # = 1 Column # = 1861 Error Text = PLS-00201: идентификатор 'SYS.DBMS_IJOB' должен быть объявлен
Line # = 1 Column # = 1861 Error Text = PL/SQL: Statement ignored

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

BEGIN GAL8."GAL_SYSFUNC_PKG".CREATE_JOB; END;
ORA-04068: existing state of packages has been discarded
ORA-04063: package body "GAL8.GAL_SYSFUNC_PKG" has errors
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 1

Соответсвенно, chkora пишет

Тело пакета GAL_SYSFUNC_PKG скомпилировалось с ошибками.
Задание (null) скорректировалось с ошибками.

Как победить?

PS запуск chkora атлантиса 5431, пишет тоже самое

Re: Оракл. Переход на 29 атлантис

Добавлено: 07 фев 2013, 14:31
spark
Добрый день!

Тоже ошибка в body этого пакета и никак не могу победить... =(
Есть подозрение, что из-за этого зависают сессии пользователей в системе.

Re: Оракл. Переход на 29 атлантис

Добавлено: 08 фев 2013, 18:16
AlexMK
spark писал(а):Добрый день!

Тоже ошибка в body этого пакета и никак не могу победить... =(
Есть подозрение, что из-за этого зависают сессии пользователей в системе.
версия ORACLE ?
версия Атлантиса ?

Re: Оракл. Переход на 29 атлантис

Добавлено: 08 фев 2013, 18:26
spark
AlexMK писал(а):
spark писал(а):Добрый день!

Тоже ошибка в body этого пакета и никак не могу победить... =(
Есть подозрение, что из-за этого зависают сессии пользователей в системе.
версия ORACLE ?
версия Атлантиса ?

Уже техподдержка помогла, спасибо, что отозвались.

Для истории оставлю здесь:

Одной из функций данного пакета и является обнаружение таких "зависших" пользователей.

Пакет может быть невалиден по нескольким причинам.
Самая распространенная - отсутствие типа GAL_HEXARRAY_TT
и отсутствие прав на запуск SYS.DBMS_IJOB и SYS.DBMS_LOCK.

Нам помогло вот это:
CREATE OR REPLACE TYPE GAL8."GAL_HEXARRAY_TT" AS TABLE OF CHAR (16);
/
GRANT EXECUTE ON SYS.DBMS_IJOB TO GAL8
/
GRANT EXECUTE ON SYS.DBMS_LOCK TO GAL8
/

После этого пакет скомпилировался и все заработало.

Версия оракла 8.1.7
Атлантис 5.4.41