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

Откуда:
Сообщений: 648
Как быстро получить список схем?
На данный момент посмотрел нижеприведенные запросы оба работают секунд по 8-10. Хотелось бы быстрее...

select usr.USERNAME
from sys.DBA_USERS usr
where exists(select * from SYS.DBA_OBJECTS obj where obj.OWNER = usr.USERNAME)
order by usr.USERNAME

select distinct OWNER
from SYS.DBA_OBJECTS
order by OWNER
26 фев 06, 14:37    [2391101]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
artemisin
Member

Откуда:
Сообщений: 548
а чем не устраивает
SELECT *
  FROM dba_users
?
26 фев 06, 14:45    [2391126]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
Падонак
Member [заблокирован]

Откуда: из лесу
Сообщений: 1775
artemisin
а чем не устраивает
SELECT *
  FROM dba_users
?


ну типа пользователей без объектов он не хочет
26 фев 06, 14:48    [2391141]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
eml78
Member

Откуда:
Сообщений: 648
artemisin
а чем не устраивает
SELECT *
  FROM dba_users
?

ну так первый вариант из нее и выбирает, но тогда приходится exists добавлять, а это тормоза...
26 фев 06, 14:48    [2391146]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
artemisin
Member

Откуда:
Сообщений: 548
да понял я. протестил у себя
select distinct OWNER
from SYS.DBA_OBJECTS
order by OWNER
и
SELECT *
  FROM dba_users
.
Обе возвращают одинаковое колчисетво... вот думаю может такое быть или нет ?
26 фев 06, 14:50    [2391150]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
eml78
Member

Откуда:
Сообщений: 648
artemisin
да понял я. протестил у себя
select distinct OWNER
from SYS.DBA_OBJECTS
order by OWNER
и
SELECT *
  FROM dba_users
.
Обе возвращают одинаковое колчисетво... вот думаю может такое быть или нет ?
26 фев 06, 14:58    [2391182]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
eml78
Member

Откуда:
Сообщений: 648
artemisin
да понял я. протестил у себя
<...skip...>
Обе возвращают одинаковое колчисетво... вот думаю может такое быть или нет ?

Конечно возможно. Дело в том, что DBA_OBJECTS вернет схемы + PUBLIC.
А DBA_USERS = схемы + пользователи без схем.
если у тебя только один пользователь не имеет схемы, то тогда все OK (по крайней мере в 9.2 SE)
26 фев 06, 14:59    [2391184]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
RA\/EN
Member

Откуда:
Сообщений: 3659
select name from sys.user$ u where u.user# in (
select  owner# from sys.obj$)
26 фев 06, 15:14    [2391241]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Получить список схем  [new]
AloneAli
Member

Откуда: Оренбург
Сообщений: 286
Пытаюсь, под созданном мною пользователем со всеми правами, сделать следующий запрос:
select * from dba_users

Но выдает ошибку - Table or view does not exist.

В чем причина?
6 сен 07, 13:58    [4629625]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
AloneAli
Пытаюсь, под созданном мною пользователем со всеми правами, сделать следующий запрос:
select * from dba_users

Но выдает ошибку - Table or view does not exist.

В чем причина?
Нет привилегии для чтения SYS.DBA_USERS
6 сен 07, 14:00    [4629655]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
Используй
select * from all_users
У ALL_USERS grant select to PUBLIC with grant option;
6 сен 07, 14:23    [4629966]     Ответить | Цитировать Сообщить модератору
 Re: Получить список схем  [new]
AloneAli
Member

Откуда: Оренбург
Сообщений: 286
Спасибо, господа!
6 сен 07, 14:55    [4630310]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить