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

Откуда:
Сообщений: 66
Добрый день.
Подскажите возможно получить зависимость полей view и полей таблиц на которых строится вью?
Типа view1.col1 это table3.col25
В user_dependencies видно связь самих объектов, но не конкретных полей.
3 окт 12, 18:31    [13263630]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
-2-
Member

Откуда:
Сообщений: 15330
поиск для updatable колонок view изменяемой таблицы+колонки
3 окт 12, 18:55    [13263749]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
plr_change
Member

Откуда:
Сообщений: 66
-2-
Этим способом ищутся только простые зависимости (и за это спасибо!!!). Сложные поля (типа объединение нескольких полей) не получается.
4 окт 12, 13:27    [13267302]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
plr_change
-2-
Этим способом ищутся только простые зависимости (и за это спасибо!!!). Сложные поля (типа объединение нескольких полей) не получается.

ну а как вы себе это (ваше хотелово) представляете?
4 окт 12, 13:45    [13267466]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
plr_change
Member

Откуда:
Сообщений: 66
orawish,
да абсолютно в любом виде... хоть перечисление через запятую. Главное что бы была показана зависимость поля во вью от полей таблиц.
Т.е. есть две таблицы
table1 (col1_tab1, col2_tab1) и table2 (col1_tab2, col2_tab2)
и есть вью VIEW1 (col1, col2, big_col) построенное на этих таблицах в котором поле big_col, получается из двух таблиц (col1_tab1+col2_tab2).

Хочется увидеть следующие

Столбцы вью Столбцы таблиц
view1.col1 col1_tab1
view1.col2 col2_tab2
view1.big_col col1_tab1+col2_tab2 или col1_tab1, col2_tab2 или как-то ещё

Указанная выше по ветке метода возвращает только первые две строчки, т.е. простые поля, а для составного big_col оставляет NULL.
Хорошо бы и это поле как-то заполнялось. Причем конкретный механизм получения этого поля не важен, главное чтобы просто были указаны сами поля всех таблиц, формирующих это поле.
4 окт 12, 17:18    [13269543]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
plr_change
orawish,
да абсолютно в любом виде... хоть перечисление через запятую. Главное что бы была показана зависимость поля во вью от полей таблиц.
Т.е. есть две таблицы
table1 (col1_tab1, col2_tab1) и table2 (col1_tab2, col2_tab2)
и есть вью VIEW1 (col1, col2, big_col) построенное на этих таблицах в котором поле big_col, получается из двух таблиц (col1_tab1+col2_tab2).

Хочется увидеть следующие

Столбцы вью Столбцы таблиц
view1.col1 col1_tab1
view1.col2 col2_tab2
view1.big_col col1_tab1+col2_tab2 или col1_tab1, col2_tab2 или как-то ещё

Указанная выше по ветке метода возвращает только первые две строчки, т.е. простые поля, а для составного big_col оставляет NULL.
Хорошо бы и это поле как-то заполнялось. Причем конкретный механизм получения этого поля не важен, главное чтобы просто были указаны сами поля всех таблиц, формирующих это поле.

спасибо за разъяснение, однако, по прежнему не вижу какой в этом смысл.
ну и да, разумеется, ничего подобного получить не выйдет.
4 окт 12, 17:22    [13269577]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
plr_change
Member

Откуда:
Сообщений: 66
orawish,
"по слухам" в старых версиях Oracle (примерно 8.0) было можно отловить такие связи в момент компиляции вью в одной из служебных таблиц x$... Т.е. если сразу после построения вью сделать слепок этой таблицы, то как раз там все это и было. На следующей вьюхе точно также и т.д.

А нужно это для того чтобы составить общий список всех используемых вьюхами полей исходных таблиц.
4 окт 12, 19:42    [13270325]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
-2-
Member

Откуда:
Сообщений: 15330
plr_change
А нужно это для того чтобы составить общий список всех используемых вьюхами полей исходных таблиц.
alter table drop column,
alter view compile.

А здесь какие поля из таблицы используются?
create view вья as 
select аа
from (
   select аа, бэ, вэ
   from таблицы
   where гэ is null
   order by бэ
)
where rownum = 1
4 окт 12, 23:22    [13270864]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
plr_change
Member

Откуда:
Сообщений: 66
-2-,

create view вья as
select аа
from (
select аа, бэ, вэ
from таблицы
where гэ is null
order by бэ
)
where rownum = 1

Все поля из подселекта: аа, бэ, вэ... и гэ...
Т.е. всё что относится к таблицам, все поля которые учавствали в создании вью - всё необходимо учесть (из самого селекта, секции фром и из секции вхере и из подселектов)
5 окт 12, 11:47    [13272711]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2852
plr_change,
Вы же понимаете, что вэ вообще не участвует в запросе, а с результирующим набором к клиенту приходит только аа?
Тогда разбирайте вручную представление.
5 окт 12, 11:52    [13272776]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
plr_change
Member

Откуда:
Сообщений: 66
AlexFF__|,
да надо не с точки зрения клиента, а с точки зрения аналитика (или программера), т. е. получить список всего того, из чего формируется "результирующий набор" сущностей для пользователей.

Вы правы, именно вручную и делаем, что печально, конечно... ибо самих вьюх и полей в них очень много.
5 окт 12, 14:05    [13274006]     Ответить | Цитировать Сообщить модератору
 Re: Получить зависимость полей view и полей таблиц Oracle10g и 11g  [new]
-2-
Member

Откуда:
Сообщений: 15330
plr_change
Все поля из подселекта: аа, бэ, вэ... и гэ...
Тогда замените во всех view таблицы на (select * from таблицы) и считайте, что используются все колонки.
5 окт 12, 14:30    [13274201]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить