Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вычистить NON-EXISTENT объекты? / 11 сообщений из 11, страница 1 из 1
31.03.2017, 13:25
    #39430865
Andrew-y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
Доброе время суток, коллеги!

Возник такой вопрос:

Создал процедуру USER.PROC, создал ее копию с новым именем USER.JOB_PROC , дропнул исходную процедуру USER.PROC, пытаюсь создать шедулерный джоб с именем USER.PROC (имя исходной процедуры) вызывающий, новую процедуру USER.JOB_PROC и получаю:
ORA-27477: "USER.PROC" already exists

При попытке удалить джоб:
ORA-27475: unknown job "USER"."PROC"

При этом, погуглив, нашел такое представление:
dba_objects_ae (user_objects_ae)

В нем видны эти объекты с типом: "NON-EXISTENT"

Подскажите, пожалуйста, что это за магия и как вычистить недобитые объекты из словаря?
...
Рейтинг: 0 / 0
31.03.2017, 21:25
    #39431182
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
Andrew-yORA-27477: "USER.PROC" already exists
Job в EBR..? https://docs.oracle.com/html/E26088_02/statements_5009.htm The following object types are editionable:

Synonym

View

Function

Procedure

Package (specification and body)

Type (specification and body)

Library

Trigger


Note:
All database object types not listed above are not editionable. Changes to object types that are not editionable are immediately visible across all editions in the database.

...
Рейтинг: 0 / 0
01.04.2017, 01:27
    #39431218
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
Andrew-y,

Какая версия СУБД?
Код: plsql
1.
SELECT banner FROM v$version;


Я столкнулся с подобным при работе с Edition-based Redefinition (EBR) в Oracle Database 12.1.0.2 EE.

Создаю процедуры в разных ревизиях, потом их DROPаю.
в USER_OBJECTS_AE вижу, что их тип объекта стал NON-EXISTENT.

В USER_OBJECTS их не видно.
Покопавшись на MOS нашел старый исправленный баг для Oracle 9-10
(SMON не слишком оперативно подчищал удаленное)

Проверю осталось ли это в 12.2.0.1 EE.
Если осталось, заведу в понедельник SR.
...
Рейтинг: 0 / 0
01.04.2017, 01:29
    #39431220
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
Andrew-yКак вычистить NON-EXISTENT объекты?
Да, забыл сказать:

NON-EXISTENT объекты отлично вычищались
"убиением" пользователя (схемы),
которому они принадлежали...
...
Рейтинг: 0 / 0
03.04.2017, 06:16
    #39431757
Andrew-y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
SQL*Plus, к сожалению, этот вариант мне не подходит.
Находил вариант с перезапуском базы, но, все-таки, хотелось бы найти более гуманные способы борьбы с подобным.
...
Рейтинг: 0 / 0
03.04.2017, 08:16
    #39431779
AlexVin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
12.1.0.2.170117 - non-multi и в pdb
12.2.0.1.0 - pdb
проявляется

Код: 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.
create or replace procedure zz is begin null; end zz;
/
drop procedure zz;
col owner format a30
col object_name format a30
select o.OWNER,o.OBJECT_NAME from dba_objects_ae o
 where o.OBJECT_TYPE = 'NON-EXISTENT' and o.OWNER = user and o.OBJECT_NAME = 'ZZ';
exec dbms_scheduler.create_job(job_name =>'ZZ',job_type =>'PLSQL_BLOCK',job_action => 'begin null; end;');

Procedure created.

SQL>
Procedure dropped.

SQL> SQL> SQL>   2
OWNER                          OBJECT_NAME
------------------------------ ------------------------------
SYS                            ZZ

SQL> BEGIN dbms_scheduler.create_job(job_name =>'ZZ',job_type =>'PLSQL_BLOCK',job_action => 'begin null; end;'); END;

*
ERROR at line 1:
ORA-27477: "SYS"."ZZ" already exists
ORA-06512: at "SYS.DBMS_ISCHED", line 146
ORA-06512: at "SYS.DBMS_SCHEDULER", line 288
ORA-06512: at line 1
...
Рейтинг: 0 / 0
03.04.2017, 09:31
    #39431838
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
Andrew-y,

http://itnewscast.com/database/non-existent-edition If you often create test procedures/fucntions (like me), you can find the _ae dictionary views quickly fill with these "NON-EXISTENT" objects. This can be confusing once you start working with editions. Hoepfully Oracle will introduce some form of purge option when dropping PL/SQL to provide a nicer way to get rid these
For a full script, use this . (NB – requires 11gR2 to see the effect)
...
Рейтинг: 0 / 0
07.04.2017, 13:04
    #39434764
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
SQL*PlusПроверю осталось ли это в 12.2.0.1 EE.
Если осталось, заведу в понедельник SR.
Проверил.
Это осталось в 12.2.0.1 EE.

Завел SR.
Проблему воспроизвели.
Работают.
...
Рейтинг: 0 / 0
19.05.2017, 18:31
    #39456427
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
SQL*PlusSQL*PlusПроверю осталось ли это в 12.2.0.1 EE.
Если осталось, заведу в понедельник SR.
Проверил.
Это осталось в 12.2.0.1 EE.

Завел SR.
Проблему воспроизвели.
Работают.
По моему SR создали Bug NNNNNNNN : SCHEDULER CANNOT CREATE AN OBJECT WITH THE SAME NAME AS A NON-EXISTENT OBJECT
Который уже Fixed in Product Version 12.2.0.2.0

Предложили сделать backport этого фикса.
Я отказался, поскольку нужды в этом особой нет.
...
Рейтинг: 0 / 0
21.05.2017, 05:23
    #39456778
AlexVin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
SQL*PlusProduct Version 12.2.0.2.0
а оно когда будет?)
...
Рейтинг: 0 / 0
22.05.2017, 11:39
    #39457191
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вычистить NON-EXISTENT объекты?
AlexVinSQL*PlusProduct Version 12.2.0.2.0
а оно когда будет?)Пока запланировано на 4-й квартал 2017 г. (см. 742060.1)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вычистить NON-EXISTENT объекты? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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