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

Откуда:
Сообщений: 59
Задание найти имена всех синонимов в вашей схеме.

В результате должна выйти табличка типа:

SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK
___________________________________________________
EMP HR EMPLOYEES - полученные данные (например)

Написала так (добавила определенного пользователя, чтобы выводилось поменьше)

select distinct synonym_name, table_owner, table_name
from (select all_tables.table_name as synonym_name, all_tables.owner as table_owner,
case
when all_constraints.table_name is not null then all_constraints.table_name
end as table_name
from all_tables, All_Constraints
where all_tables.owner = all_constraints.owner and all_tables.owner = upper('gr_serebr')
)
where synonym_name <> table_name;
___________________________________________________________________________

То есть в принципе я задачу решила, но не пойму откуда брать этот db_link ?
10 окт 13, 23:22    [14953848]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
4mo
Member

Откуда:
Сообщений: 29
serebr,

а что это за задачки такие?
10 окт 13, 23:31    [14953878]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
serebr
Задание найти имена всех синонимов в вашей схеме.

В результате должна выйти табличка типа:
SYNONYM_NAME     TABLE_OWNER    TABLE_NAME    DB_LINK
___________________________________________________
EMP                         HR                 EMPLOYEES                     - полученные данные (например)

Написала так (добавила определенного пользователя, чтобы выводилось поменьше)

select distinct synonym_name, table_owner, table_name
from (select all_tables.table_name as synonym_name, all_tables.owner as table_owner, 
       case 
       when all_constraints.table_name is not null then all_constraints.table_name
       end as table_name
from all_tables, All_Constraints
where all_tables.owner = all_constraints.owner and all_tables.owner = upper('gr_serebr')
)
where synonym_name <> table_name;
________________________________________
___________________________________

То есть в принципе я задачу решила, но не пойму откуда брать этот db_link ?
10 окт 13, 23:34    [14953885]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
Пардон случайно отправил
USER_SYNONYMS
10 окт 13, 23:35    [14953890]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
serebr
Member

Откуда:
Сообщений: 59
4mo, это по oracle в универе такие задают ))

Что-то закрались у меня сомнения, что я отсекаю связанные таблицы, а не полные синонимы???

Спасибо, Vadim, за ссылку, завтра гляну, то есть уже сегодня, но утречком, на свежую голову.
11 окт 13, 00:23    [14954020]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
serebr
Member

Откуда:
Сообщений: 59
Огромное спасибо за ссылку, все оказалось до безобразия просто ))

select synonym_name, owner as table_owner, table_name, db_link
from all_synonyms
where synonym_name is not null and table_owner = 'GR_SEREBR';
11 окт 13, 10:38    [14955024]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
Задание
Задание найти имена всех синонимов в вашей схеме.

автор
...
OWNER VARCHAR2(30) Owner of the synonym
...
TABLE_OWNER VARCHAR2(30) Owner of the object referenced by the synonym,
or creator of the referring synonym if the target is a public synonym (that is, the object referred to by TABLE_NAME).

Although the column is called TABLE_OWNER, the object owned is not necessarily a table.
It can be any general object such as a view, sequence, stored procedure, synonym, and so on.


serebr
Огромное спасибо за ссылку, все оказалось до безобразия просто ))

select synonym_name, owner as table_owner, table_name, db_link
from all_synonyms
where synonym_name is not null and table_owner = 'GR_SEREBR';



Вы уверены?
11 окт 13, 13:52    [14956578]     Ответить | Цитировать Сообщить модератору
 Re: Db_link и в какой таблице он находится?  [new]
serebr
Member

Откуда:
Сообщений: 59
Ну я как всегда чуток тороплюсь ))

Хотя в моем случае, на результате это не отразилось ;-)

select synonym_name, owner as "table_owner", table_name, db_link
from all_synonyms
where synonym_name is not null and (owner = 'GR_SEREBR' or table_owner = 'GR_SEREBR');
11 окт 13, 19:03    [14958186]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить