Я работаю с базой данных оракула. У меня есть код plsql, где я запускаю запрос в цикле для нескольких таблиц. Итак, имя таблицы является переменной в моем коде. Я хотел бы иметь другую переменную (одно число), которую я могу вызывать внутри цикла, и каждый раз, когда она подсчитывает общее количество строк каждой таблицы для меня
declare
Cursor C_TABLE is
select trim(table_name) as table_name
from all_tables
where table_name in ('T1', 'T2', 'T3');
V_ROWNUM number;
begin
for m in C_TABLE
loop
for i in ( select column_name
from (
select c.column_name
from all_tab_columns c
where c.table_name = m.table_name
and c.owner = 'owner1'
)
)
loop
--I have this:
execute immediate ' insert into MY-table value (select ' || i.column_name || ' from ' || m.table_name || ')';
--I want this but it does not work of course:
V_ROWNUM := execute immediate 'select count(*) from ' || m.table_name;
execute immediate ' insert into MY-table value (select ' || i.column_name || ', ' || V_ROWNUM || ' from ' || m.table_name || ')';
end loop;
end loop;
end;
/
Я считаю, что не использую "вставить в", потому что я выбираю не из 1 таблицы, а из таблицы, которую я хочу выбирать, каждый раунд.