Создание цикла с использованием списка таблиц и вызов всех таблиц один за другим - PullRequest
0 голосов
/ 09 мая 2018

У меня есть список таблиц из этого запроса

select table_name  from all_tab_columns  where column_name='EXCN_ID'

Я хочу получить все необходимые столбцы, используя этот запрос

select B.* 
from t_int_excn_log A, TABLE B
where A.excn_strt_tm < sysdate-7  and A.excn_id=B.excn_id;

Нужна ли вам помощь для циклического списка таблиц, напримерчто вместо TABLE он будет вызывать все таблицы одну за другой согласно предыдущему запросу.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Попробуйте это ..

DECLARE CURSOR cur IS 
       select   table_name  from all_tab_columns  where column_name='EXCN_ID'
       FROM occupancy WHERE occupied_dt = SYSDATE;
    cur_rec table_name%ROWTYPE;
 BEGIN
    OPEN cur;
    LOOP
       FETCH cur INTO cur_rec;
       EXIT WHEN Cur%NOTFOUND;
       select B.* 
        from t_int_excn_log A, cur_rec B
        where A.excn_strt_tm < sysdate-7  and A.excn_id=B.excn_id;
    END LOOP;
    CLOSE cur;
 END;
0 голосов
/ 09 мая 2018

Вы можете использовать курсор для этого случая.

declare @name varchar(200)
declare cur cursor for 
select   table_name  from all_tab_columns  where column_name='EXCN_ID'
open cur
fetch next from @name
while @@fetch_status = 0
begin
    select B.* 
    from t_int_excn_log A, @name B
    where A.excn_strt_tm < sysdate-7  and A.excn_id=B.excn_id;
fetch next from @name
end
close cur
deallocate cur
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...