Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Вниз

Извлечение Schemas из словаря данных .... 


Suntechnic   (2002-02-26 00:59) [0]

Кто-нибудь помнит View из которого все схемы извлечь можно?



Sparky   (2002-02-26 05:40) [1]

Ну это не совсем точный ответ
Попробуй all_users или dba_users там список юзверей



Suntechnic   (2002-02-26 06:38) [2]

>Sparky © (26.02.02 05:40)
>Ну это не совсем точный ответ
Вот именно :). Про существование all_users я знаю, но проблема в том, что пользователей может быть сколь угодно много, а владельцев объектов БД единицы. Зачем всех подряд на клиента тянуть? В принципе можно вытянуть из представления, где находятся все объекты БД(не помню наизусть название) применив DISTINCT, но там объектов может быть десятки тысяч, так что не хотелось бы почём зря сервер напрягать. Так всё таки есть такое представление для схем, типа как all_users для пользователей или нет?



Внук   (2002-02-26 10:39) [3]

"...но проблема в том, что пользователей может быть сколь угодно много, а владельцев объектов БД единицы"
Не понял. Неужто я такой дикий :) Пользователь ORACLE и схема -не одно и то же? Или есть пустые схемы, и их нужно исключить из списка?



roottim   (2002-02-26 13:59) [4]

>Внук
> Пользователь ORACLE и схема -не одно и то же?
не одно!!!... пользователь может как иметь свою схему либо пользоваться другой!... это как разграничит доступ админ!

непомню точно! там всяких видов куча... но в пр можно так
select distinct owner from all_tables



panov   (2002-02-26 14:14) [5]

>roottim (26.02.02 13:59)
Ничего подобного.
Пользователь всегда владеет своей схемой.
Другое дело, что даже для этой схемы администратор может запретить некоторые действия, например - создание, таблиц, удаление, создание триггеров и т.п.



petr_v_a   (2002-02-26 14:16) [6]

схема - набор объектов, принадлежащих пользователю ( хотя формального определения, по-моему, нету )
> Suntechnic судя по ходу обсуждения, Вам подойдет
select *
from DBA_USERS u
where exists ( select * from DBA_OBJECTS o
where o.OWNER=u.USERNAME
)

а быстрее
select *
from DBA_USERS u
where exists ( select * from sys.OBJ$ o
where o.OWNER#=u.USER_ID
)



roottim   (2002-02-26 14:39) [7]

абсолютно согласен с petr_v_a...



Suntechnic   (2002-02-26 16:59) [8]

Всем спасибо, кто откликнулся!

>Внук © (26.02.02 10:39)
>Или есть пустые схемы, и их нужно исключить из списка?
Да. Именно в этом и суть вопроса.

>petr_v_a © (26.02.02 14:16)
Если делать запрос к DBA_OBJECTS, то можно и проще:
select DISTINCT OWNER from DBA_OBJECTS
или как roottim советовал.
Я упоминал об этом в своём посте от (26.02.02 06:38). Меня здесь беспокоит только то, что не хотелось бы напрягать сервер на выборку из представлений с десятками тысяч записей. Но если нет другого пути, то видно придётся так...



BAS   (2002-02-26 17:29) [9]

Если хочешь могу прислать по мылу файл со всеми вьюхами(просто ща негода смотреть)- м. че найдешь, пиши на мыло(только с условием: если найдешь - в форуме скажешь).



Suntechnic   (2002-02-26 17:44) [10]

>BAS (26.02.02 17:29)
Спасибо конечно, но все представления я и так увидеть могу :) В том то и проблема, что листать их и искать нужный(если таковой вообще имеется) несколько хлопотно :0



Suntechnic   (2002-02-26 17:44) [11]

>BAS (26.02.02 17:29)
Спасибо конечно, но все представления я и так увидеть могу :) В том то и проблема, что листать их и искать нужный(если таковой вообще имеется) несколько хлопотно :0



petr_v_a   (2002-02-26 18:06) [12]

>Suntechnic © (26.02.02 16:59)
не факт. select DISTINCT OWNER from DBA_OBJECTS - это сортировка десятков тысяч записей. Но запрос проще. Так что хрен его занет что лучше :)))



Suntechnic   (2002-02-26 18:15) [13]

>petr_v_a © (26.02.02 18:06)
Тут выяснилось, что никакие запросы к DBA_OBJECTS меня вообще не устроят :(. Чтобы обратиться к DBA_OBJECTS нужны права администратора(или чтобы кто-то дал права на выборку из этого представления), а в моём случае это совсем не факт. Так что придётся наверное остановится на варианте
roottim (26.02.02 13:59)
select distinct owner from all_tables



Suntechnic   (2002-02-26 18:16) [14]

>petr_v_a © (26.02.02 18:06)
Тут выяснилось, что никакие запросы к DBA_OBJECTS меня вообще не устроят :(. Чтобы обратиться к DBA_OBJECTS нужны права администратора(или чтобы кто-то дал права на выборку из этого представления), а в моём случае это совсем не факт. Так что придётся наверное остановится на варианте
roottim (26.02.02 13:59)
select distinct owner from all_tables



petr_v_a   (2002-02-26 18:32) [15]

есть еще all_objects



Suntechnic   (2002-02-26 18:42) [16]

>petr_v_a © (26.02.02 18:32)
all_tables для меня именно то, что надо для дальнейшей логики моего приложения. Т.е. меня интересуют только те схемы, где есть таблицы.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.025 c
14-80684          Digitman              2002-02-11 16:26  2002.03.25  
А не запихнуть ли и мне ? :)


14-80661          Lena                  2002-02-11 02:24  2002.03.25  
Что значит ИМХО???


4-80721           serjant               2002-01-25 14:49  2002.03.25  
TEdit


3-80427           dmitryK               2002-02-22 15:46  2002.03.25  
Ошибки ADO


6-80630           star                  2002-01-04 12:59  2002.03.25  
Как узнать, что outlook express отсылает письмо ?