#sql #oracle #plsql #oracle11g
#sql #Oracle #plsql #oracle11g
Вопрос:
Извините, если заголовок сбивает с толку
У меня есть запрос, который выглядит примерно так:
Declare
cursor xy is
select yr from calendar;
BEGIN
for rec1 in xy loop
insert into new_table
Select yr, month, name, position from table_1
where yr = rec1.yr
union all
Select yr, month, name, position from table_2
where yr = rec1.yr
union all
Select yr, month, name, position from table_3
where yr = rec1.yr;
commit;
end loop;
end;
но я хочу разделить все объединения на несколько insert into,
так что что-то вроде
BEGIN
for rec1 in xy loop
insert into new_table
Select yr, month, name, position from table_1
where yr = rec1.yr;
commit;
insert into new_table
Select yr, month, name, position from table_2
where yr = rec1.yr
commit;
.
.
etc
но когда я пытаюсь это сделать, он работает так долго и переходит в тайм-аут. В то время как предыдущее заняло бы всего пару минут. Так что, вероятно, что-то не так с запросом, поэтому любая помощь приветствуется
Комментарии:
1. Прежде всего, удалите
COMMIT
s из цикла. Во-вторых, у вас есть решение, которое работает хорошо и выполняет работу правильно. Итак, почему вы настаиваете на том, чтобы переписать его во что-то, что работает хуже, чем это, и вас это не устраивает?2. Кстати, отступы в коде делают его намного более читаемым и помогают избежать синтаксических ошибок.