Хранимая процедура копирования данных из одной таблицы в другую - PullRequest
4 голосов
/ 03 декабря 2009

У меня пары таблиц в формате TABLE и TABLE_TWIN, сейчас

  • TABLE - главная таблица с большим количеством данных
  • TABLE_TWIN - таблица с точно такими же полями с небольшими данными (разные данные)

Теперь я хотел бы скопировать все строки из TABLE_TWIN в TABLE, используя хранимую процедуру. У меня много таких таблиц, и я хотел бы, чтобы хранимая процедура принимала имена таблиц в качестве параметра (ов), чтобы я мог использовать одну и ту же процедуру для каждой пары таблиц. Я не хочу писать long INSERT операторов, потому что эти таблицы имеют около 50 атрибутов в каждой.

Я плохо разбираюсь в PL / SQL, поэтому мне нужна помощь.

Спасибо!

Ответы [ 2 ]

9 голосов
/ 03 декабря 2009

SQL не такой длинный ... Но если вы предпочитаете процедуру, вот она:

create or replace procedure table_copy(
  p_tab_from varchar2,
  p_tab_to   varchar2)
is
begin
  execute immediate 'insert into '||p_tab_to||' (select * from '||p_tab_from||')';
end;
5 голосов
/ 03 декабря 2009
insert into table_twin (select * from table) 

должен это сделать

...