powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
6 сообщений из 6, страница 1 из 1
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418578
При попытке перекомпилировать инвалидные объекты посредством скрипта //rdbms/admin/utlrp.sql получаю такое сообщение:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
SQL> @utlrp.sql;

TIMESTAMP
-----------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2017-03-14 12:36:20

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#
DECLARE
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
ORA-06512: at "SYS.UTL_RECOMP", line 662
ORA-06512: at line 4

При этом, реального перекомпилирования инвалидов не происходит (смотрю по статусу в DBA_OBJECTS после запуска @utlrp.sql. При этом, если вручную компилировать любой из инвалидов, то статус становится VALID)

Как узнать, какой именно объект мешает успешному выполнению процедуры? DDL пакета UTL_RECOMP смотрел - там, как и во всем словаре, какая-то заврапленная "заглушка".
...
Рейтинг: 0 / 0
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418588
Версия Oracle:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
"CORE 10.2.0.5.0 Production"
TNS for 64-bit Windows: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
...
Рейтинг: 0 / 0
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418713
orac_list
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стало интересноПри попытке перекомпилировать инвалидные объекты посредством скрипта //rdbms/admin/utlrp.sql получаю такое сообщение:

Код: plsql
1.
2.
3.
4.
ERROR at line 1:
ORA-00955: name is already used by an existing object
ORA-06512: at "SYS.UTL_RECOMP", line 662
ORA-06512: at line 4


Как узнать, какой именно объект мешает успешному выполнению процедуры? DDL пакета UTL_RECOMP смотрел - там, как и во всем словаре, какая-то заврапленная "заглушка".

alter session set event '6512 trace name errorstack forever, level 3';
Затем запускать utlrp.sql в той же сессии
...
Рейтинг: 0 / 0
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418717
orac_list
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orac_listСтало интересноПри попытке перекомпилировать инвалидные объекты посредством скрипта //rdbms/admin/utlrp.sql получаю такое сообщение:

Код: plsql
1.
2.
3.
4.
ERROR at line 1:
ORA-00955: name is already used by an existing object
ORA-06512: at "SYS.UTL_RECOMP", line 662
ORA-06512: at line 4


Как узнать, какой именно объект мешает успешному выполнению процедуры? DDL пакета UTL_RECOMP смотрел - там, как и во всем словаре, какая-то заврапленная "заглушка".

alter session set event '6512 trace name errorstack forever, level 3';
Затем запускать utlrp.sql в той же сессии

Можно еще
alter session set event '955 trace name errorstack forever, level 3';
...
Рейтинг: 0 / 0
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418721
orac_list
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orac_list,

Вообще это баг

Bug 12560454 - ORA-955 from UTL_RECOMP (Doc ID 12560454.8)

Using DBMS_UTILITY.COMPILE_SCHEMA to recompile invalid objects
may not recompile any objects. The "utlrp" script also fails to recompile
objects.

eg:
Attempting to run utlrp as a non SYS user returns:
ORA-00955: name is already used by an existing object
ORA-06512: at "SYS.UTL_RECOMP", line 662
ORA-06512: at line 4

Workaround
Drop index utl_recomp_comp_idx1 before attempting the recompile.
...
Рейтинг: 0 / 0
Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
    #39418842
orac_list,

спасибо тебе, добрый человек. помог :)
после удаления индекса все заработало.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скрипт @utlrp.sql и ORA-00955: name is already used by an existing object
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]