Задать вопрос
@Raushka

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

Все привет, ребят!
Можете помочь в решении задачи (Необходимо из таблицы general_table обновить данные в таблице tablenew)
declare
  tablename varchar(255) := '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 is not null then
execute immediate 'update ' || tablenew || ' set accli = ' || rec.acode || ', clcode= ' || rec.clcode || ''; --данные из таблы general_table обновляются в таблице tablename
end if;
end loop;
end;


Получается что, в таблице tablenew обновляются все поля одним и тем же полем из цикла. Как лучше в коде прописать, чтобы из таблицы general_table обновлялись все поля в таблице tablenew ? Заранее благодарю!
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Средний Комментировать
Решение пользователя rPman К ответам на вопрос (1)
@rPman
добавить в запрос update условие where ' || tablenew || '.id=' || tablename.id || ', если id там числовой (если строковый или бинарный то подумать как правильно значения передать через переменные или как то экранировать опасные символы)
Ответ написан