powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SNP_LP_STEP Oracle Data Integrator
2 сообщений из 2, страница 1 из 1
SNP_LP_STEP Oracle Data Integrator
    #40001659
rpaa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть репозиторий ODI, там есть таблица SNP_LP_STEP, которая содержит все выполняемые шаги лоад плана. Я пытаюсь вытащить из этой таблицы все шаги из определенной ветки, шагом может быть еще одна дочерняя ветка, которая так же может содержать еще ветки и т.д.. Есть 2 поля, по которому можно определить родителя, это поле с id шага I_LP_STEP и шаг родитель PAR_I_LP_STEP. Как можно проще все вывести по всем шагам родительской ветки, с определенным именем, у меня в голову приходят только куча join'ов, типа такого:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT s3.* 
FROM SNP_LP_STEP s
	 JOIN SNP_LP_STEP s2 ON s.I_LP_STEP = s2.PAR_I_LP_STEP
	 JOIN SNP_LP_STEP s3 ON s2.I_LP_STEP = s3.PAR_I_LP_STEP 
WHERE 1=1 
AND s.I_LOAD_PLAN = 1
AND s.LP_STEP_NAME = 'MyStep'
AND s3.LP_STEP_TYPE = 'RS'
ORDER BY s3.I_LP_STEP



Получается под каждый уровень/подуровень отдельный join, хотелось бы как-то минимизировать.

Заранее спасибо.
...
Рейтинг: 0 / 0
SNP_LP_STEP Oracle Data Integrator
    #40001685
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекурсия в помощь.
Пример использования:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with r0 AS (
    select 1 id, 2 parent_id from dual
    union all
    select 2 id, 3 parent_id from dual
    union all
    select 3 id, 4 parent_id from dual
    union all
    select 3 id, 17 parent_id from dual
    union all
    select 111 id, 5 parent_id from dual
), r1 (id, parent_id, c) AS (
    select id, parent_id, 1 AS c
    FROM R0
    UNION ALL
    SELECT R1.ID, R0.parent_id, R1.c + 1 AS c
    FROM R1
        INNER JOIN R0
            ON R0.id = R1.parent_id
) 
select * from r1



Для каждого id выводится полный список всех предков, с указанием насколько предок далёк.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SNP_LP_STEP Oracle Data Integrator
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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