Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что то не могу догнать, как узнать все Dependence для VIEW / 7 сообщений из 7, страница 1 из 1
04.07.2005, 19:45
    #33148866
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
допустим есть view xxxx как узнать, из каких таблиц берутся данные, нашел я
pg_depend таблицу, ну что то не понимаю как заюзать ее, может у кого есть какая инфа по этому поводу.

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
05.07.2005, 09:18
    #33149217
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
В psql-е: \d xxxx

=> \d pg_catalog.pg_tables
View "pg_catalog.pg_tables"
Column | Type | Modifiers
-------------+---------+-----------
schemaname | name |
tablename | name |
tableowner | name |
tablespace | name |
hasindexes | boolean |
hasrules | boolean |
hastriggers | boolean |
View definition:
SELECT n.nspname AS schemaname, c.relname AS tablename, pg_get_userbyid(c.relowner) AS tableowner, t.spcname AS "tablespace", c.relhasindex AS hasindexes, c.relhasrules AS hasrules, c.reltriggers > 0 AS hastriggers
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
WHERE c.relkind = 'r'::"char";
...
Рейтинг: 0 / 0
05.07.2005, 19:50
    #33151111
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
Спасибо, а вообще можно ли как нить это заюзать основываясь на системных таблицах. (Просто все будет вызываться из проги...)


O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
06.07.2005, 11:12
    #33151693
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
select definition from pg_views;
...
Рейтинг: 0 / 0
06.07.2005, 11:33
    #33151755
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
Так это вернет мне только запрос, а мне надо чтобы возратило таблицы на которых этот запрос замешан, можно конечно его распарсить, но это такой гемор, что и думать про это просто не охото....

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
06.07.2005, 16:04
    #33152596
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
Oracleмне надо чтобы возратило таблицы на которых этот запрос замешанИМХО, странная задача. :( Поясните плиз, откуда она возникла. Недавно задавали похожий вопрос . Навскидку, запрос может быть "замешан" на таблицах, представлениях, последовательностях, функциях. А уж на чем в свою очередь могут быть "замешаны" функции, входящие в этот запрос... :)

Oracleнашел я pg_depend таблицу, ну что то не понимаю как заюзать ееВроде бы заюзать можно. Есть дока и такая информация:
Код: plaintext
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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
nalbat=> create table t_test ( id integer );
CREATE TABLE
nalbat=> select oid from pg_class where relname='t_test';
   oid
---------
  7242632 
( 1  row)

nalbat=> select * from pg_depend where objid= 7242632  or refobjid= 7242632 ;
 classid |  objid  | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+---------+----------+------------+----------+-------------+---------
     1247  |  7242633  |         0  |        1259  |   7242632  |            0  | i
     1259  |  7242632  |         0  |       16672  |      2200  |            0  | n
( 2  rows)

nalbat=> select * from pg_depend where objid= 7242633  or refobjid= 7242633 ;
 classid |  objid  | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+---------+----------+------------+----------+-------------+---------
     1247  |  7242633  |         0  |        1259  |   7242632  |            0  | i
( 1  row)

nalbat=> create view v_test as select * from t_test;
CREATE VIEW
nalbat=> select oid from pg_class where relname='v_test';
   oid
---------
  7242634 
( 1  row)

nalbat=> select * from pg_depend where objid= 7242634  or refobjid= 7242634 ;
 classid |  objid  | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+---------+----------+------------+----------+-------------+---------
     1247  |  7242635  |         0  |        1259  |   7242634  |            0  | i
     1259  |  7242634  |         0  |       16672  |      2200  |            0  | n
    16410  |  7242636  |         0  |        1259  |   7242634  |            0  | i
    16410  |  7242636  |         0  |        1259  |   7242634  |            0  | n
( 4  rows)

nalbat=> select * from pg_depend where objid= 7242635  or refobjid= 7242635 ;
 classid |  objid  | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+---------+----------+------------+----------+-------------+---------
     1247  |  7242635  |         0  |        1259  |   7242634  |            0  | i
( 1  row)

nalbat=> select * from pg_depend where objid= 7242636  or refobjid= 7242636 ;
 classid |  objid  | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+---------+----------+------------+----------+-------------+---------
    16410  |  7242636  |         0  |        1259  |   7242634  |            0  | i
    16410  |  7242636  |         0  |        1259  |   7242632  |            1  | n
    16410  |  7242636  |         0  |        1259  |   7242634  |            0  | n
( 3  rows)

nalbat=> drop table t_test cascade;
NOTICE:  удаление снисходит до правило _RETURN напредставление v_test
NOTICE:  удаление снисходит до представление v_test
DROP TABLE
То есть можно проследить связь 7242634 -> 7242636 -> 7242632.
...
Рейтинг: 0 / 0
07.07.2005, 13:20
    #33154421
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что то не могу догнать, как узнать все Dependence для VIEW
Вообще эта задача следующая - создается тул и в нем надо к примеру по имеющемуся представлению найти все объекты которые в него входят. Далее аналогичный проход по найденным объектам и так т.д. пока не нейдутся все .

А уже потом находятся связи и строятся диаграммы

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что то не могу догнать, как узнать все Dependence для VIEW / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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