@Raushka

Как можно выйти с цикла, как только обновились все строки в таблице используя динамический sql?

Прошу помочь в данной ситуации, а именно как можно выйти из цикла или остановить цикл, как только все строки в таблице CoolTable обновились?
В общем имеется процедура prc_uptable, куда на вход подается таблица (CoolTable), затем в этой таблице обновляются строки из цикла таблицы general_table и поскольку в таблице CoolTable обновляются по условию только три строки, а в таблице из цикла general_table больше 20-ти строк, то цикл продолжает работать и обновлять данные, поэтому прошу помочь прописать в коде условие выхода из цикла при обновлении всех строк в таблице CoolTable, т.е. как только обновились все строки в таблице CoolTable, нужно сразу выйти из цикла или остановить его.
create or reolace prc_uptable (tablename varchar2) id --- 'CoolTable';
tablenew varchar(255);
BEGIN
  select functable (tablename) into tablenew from dual;  --возвращает наличие таблицы 
  for rec in (select g.acode, g.clcode  from general_table g ) loop ---курсор откуда берутся данные для обновления
if tablename ='CoolTable' then
  if rec.acode = '159' and rec.clcode  = 'BYV' then
    execute immediate 'update general_table set forsign = 1 where type_cli = '''|| rec.clcode || '''';
      execute immediate 'update ' || tablenew || ' set accli = ' || rec.acode || ', clcode= ' || rec.clcode || ''; --данные из таблы general_table обновляются в таблице tablename
  elsif rec.acode = '357' and rec.clcode  = 'MYV' then
    execute immediate 'update general_table set forsign = 1 where type_cli = '''|| rec.clcode || '''';
      execute immediate 'update ' || tablenew || ' set accli = ' || rec.acode || ', clcode= ' || rec.clcode || ''; 
   elsif rec.acode = '789' and rec.clcode  = 'BYV' then
    execute immediate 'update general_table set forsign = 1 where type_cli = '''|| rec.clcode || '''';
      execute immediate 'update ' || tablenew || ' set accli = ' || rec.acode || ', clcode= ' || rec.clcode || ''; 
   end if;
end if;
end loop;
end;


может типа прописать exit when tablenew а дальше не соображу. Заранее спасибо!
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы