Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Иерархический запрос в Oracle / 11 сообщений из 11, страница 1 из 1
05.08.2016, 15:26:31
    #39287310
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
Добрый день.Необходимо сделать запрос,который покажет всю цепочку источников view.
Запрос возвращает для объекта объекты, от которых он зависит.
Делаю следующее:
SELECT a.object_type, a.object_name, b.owner, b.object_type, b.object_name,
b.object_id, b.status
FROM SYS.dba_objects a,
SYS.dba_objects b,
(SELECT object_id, referenced_object_id
FROM public_dependency
START WITH object_id =
(SELECT object_id
FROM SYS.dba_objects
WHERE owner = 'OWNER1'
)
CONNECT BY PRIOR referenced_object_id = object_id) c
WHERE a.object_id = c.object_id
AND b.object_id = c.referenced_object_id
AND a.owner NOT IN ('SYS', 'SYSTEM')
AND b.owner NOT IN ('SYS', 'SYSTEM')
Как итог выдает ошибку:
ORA-01427: подзапрос одиночной строки возвращает более одной строки
Как избавиться от этой ошибки?Помогите,пожалуйста
...
Рейтинг: 0 / 0
05.08.2016, 15:33:40
    #39287322
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
profiasКак избавиться от этой ошибки?Дропнуть все объекты, кроме одного, пользователя OWNER1.
...
Рейтинг: 0 / 0
05.08.2016, 15:34:44
    #39287323
Бельфя
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
Например заменив третий источник на такой
Код: plsql
1.
2.
3.
4.
5.
6.
(select object_id
              ,referenced_object_id
          from public_dependency
         start with object_id IN (select object_id
                                   from sys.dba_objects
                                  where owner = 'OWNER1')
...
Рейтинг: 0 / 0
05.08.2016, 15:35:48
    #39287325
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
-2-,
Нет прав удалять.К тому же хочется именно подправить запрос.Но пока не получается.
...
Рейтинг: 0 / 0
05.08.2016, 15:47:33
    #39287335
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
Бельфя,
Спасибо вам огромное!Все получилось.Можете объяснить почему IN сработал?
И еще : как сделать не все объекты,а только зависимости именно view.
Пытался добавить WHERE ,но выдало пустоту...(((
...
Рейтинг: 0 / 0
05.08.2016, 15:52:36
    #39287342
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
profiasБельфя,
Спасибо вам огромное!Все получилось.Можете объяснить почему IN сработал?


Потому что для операции =, подзапрос должен возвращать только одно значение. О чем и говорилось в тексте ошибки.
...
Рейтинг: 0 / 0
05.08.2016, 15:59:30
    #39287349
Бельфя
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
profias,

как оракл и ругается запрос
Код: plsql
1.
2.
3.
select object_id
                                   from sys.dba_objects
                                  where owner = 'OWNER1'


возвращает больше одной строки.
...
Рейтинг: 0 / 0
05.08.2016, 16:00:00
    #39287351
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
ora601,
Эх,блин.Спасибо большое за помощь.
Сейчас запрос выдал зависимости.А он выдает именно все зависимости?
Например,вьюха1-вьюха2-вьюха3-таблица1.
Или он только вьюха1-таблица,т.е первый и конечный объект?Объясните,пожалуйста.
...
Рейтинг: 0 / 0
05.08.2016, 16:15:52
    #39287371
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
...
Рейтинг: 0 / 0
05.08.2016, 16:59:06
    #39287418
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
Elic,
Спасибо большое,но это как раз таки показывает таблицу исчтоник вьюхи,а мне нужна именно полная цепь.
В указанной вами теме каждой вьюхе соответствует таблица.
Мне это тоже нужно,но нужна вся цепочка.
Например,вьюха1-вьюха2-вьюха3-таблица1.
Мой пример более подходит.Просто не могу понять,он показывает весь путь?
...
Рейтинг: 0 / 0
05.08.2016, 17:02:11
    #39287423
profias
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархический запрос в Oracle
Elic ,
Я правильно понял указанную вами тему?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Иерархический запрос в Oracle / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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