Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
SurgeonVR
Member

Откуда:
Сообщений: 41
Всем привет!

Есть приватные синонимы на таблицы, используются только в пределах своей схемы. Каждый синоним может смотреть на две таблицы, одинаковые по структуре , но разные по наполнению данными.
Референсы на синонимы есть из пакетов , процедур.

Когда например делаю create or replace synonym ....... , все нормально , синоним смотрит туда, куда нужно, и все референс объекты валидны.
Однако есть несколько синонимов на таблицы , которые после create or replace synonym разваливают референс объекты, мануал курил , о таком поведении синонимов ничего не упоминается. Причем если синоним заюзать во вьюхе, она в 100% случаев разваливается, если синоним меняет место , на какую табличку смотреть.

Подскажите, кто знает, это так должно быть , что вьюха разваливается ?
А также , - почему некоторые синонимы валят пакеты и процедуры, а некоторые нет ?

Спасибо.
19 янв 12, 17:55    [11934848]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
SurgeonVR,

давайте подумаем вслух. вот вы изменили в синониме объект, на который указывает синоним. синоним упомянут в хранимом
(статическом, компилируемом! ) программном коде. ну и что серверу делать, кроме как перекомпилировать тот код?
ить и структура у каждого объекта - такая, каким тот объект ddl-мама родила и права на объект есть у того, у кого есть права, а не у того, у кого есть одноименная надпись (~на заборе)..
19 янв 12, 19:02    [11935384]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
SurgeonVR
Member

Откуда:
Сообщений: 41
Оно то может и так, со вьюхой 100% повторяемость....
но из каких таких соображений, допустим при изменении 20 синонимов , пакет , который ссылается на них , валится только при изменении некоторых ?
Если уж падать пакету, так падать от модификаций всех синонимов, или не падать вообще...
Не прослеживается никакой закономерности, или она не очевидна...
19 янв 12, 19:52    [11935611]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
SurgeonVR,

поясните, что вы подразумеваете под валится/не_валится (+ чем и как оное диагностируете).
обратите внимание на зависимости спецификаций / тел ваших пакетов.
+ зависимости как от самих объектов (из-под) синонимов, так и транзитных зависимостей - напр. через те же вью
19 янв 12, 20:06    [11935719]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
SurgeonVR
Member

Откуда:
Сообщений: 41
Есть пакет , который ссылается на 20 синонимов, все синонимы как было сказано, указавают на таблицы одной схемы, все объекты владельца схемы.
При виполнении конструкции create or replace synonym для 18 синонимов , пакет остается валидным , однако после выполнение этой же конструкции для 2х оставшихся синонимов, пакет переходит в инвалидное состояние, которое сменяется на валидное либо после ручной рекомпиляции , либо автоматической(в случае обращения к процедурам / функциям этоого пакета).
Возникает закономерный вопрос , почему при одинаковых входных условиях(один и тот же пакет) в 2х случаях результат отличается от остальных , т.е. в 18 случаях пакет остается валидным , а в 2х случаях , пакет переходит в инвалидное состояние ?
19 янв 12, 20:21    [11935801]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
SurgeonVR,

к чему слова? зависимости то (*_dependencies) посмотрели?
19 янв 12, 20:29    [11935828]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
SurgeonVR
Member

Откуда:
Сообщений: 41
Вот из all_dependencies :

OWNER NAME TYPE REFERENCED_OWNER REFERENCED_NAME REFERENCED_TYPE REFERENCED_LINK_NAME DEPENDENCY_TYPE
X_DEV X_TEST_A SYNONYM X_DEV TABLE_A TABLE HARD
X_DEV X_TEST_B SYNONYM X_DEV TABLE_B TABLE HARD
X_DEV X_TEST_C SYNONYM X_DEV TABLE_C TABLE HARD

Синоним X_TEST_A при create or replace synonym не переводит пакет в инвалидное состояние, X_TEST_B и X_TEST_C , вызывают изменение состояния пакета на инвалидное....
В ссылках пакета на эти синонимы тоже нет ничего подозрительного....
20 янв 12, 14:11    [11939406]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
SurgeonVR
Вот из all_dependencies :
..

очень хорошо. теперь понятно, что синонимы к таблицам.
но, я, вообще-то, спрашивал про зависимости, от которых зависит спецификация и тело пакета
20 янв 12, 14:21    [11939510]     Ответить | Цитировать Сообщить модератору
 Re: create or replace synonym .... должны ли быть инвалидные объекты ?  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
И никто не спросил версию.
С 11.2 вроде пакеты должны "поумнее" инвалидироваться, чем прежде.
20 янв 12, 17:10    [11941383]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить