如何通过程序从一个表插入多个表?

时间:2013-12-02 12:40:04

标签: oracle11g procedures

有4个表

Table1(Column11, Column12, Column13)
Table2(Column21, Column22)
Table3(Column31, Column32,column33)
Table4(Column21, Column22)

以下映射表:

Table5(Sourcetable,Source column ,Destination table ,Destination column)

如何将Table1中的数据作为源表和目标表插入Table2,table3,table,4,Through Procedures?

我正在使用oracle 11g。请帮助实现这一目标!

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,这就是你要找的东西:

CREATE OR REPLACE PROCEDURE cpy_table
AS
CURSOR targ_dest_relation IS
    SELECT sourcetable, sourcecolumn, destinationtable, destinationcolumn FROM table5;

BEGIN
    FOR rec IN targ_dest_relation loop
        execute immediate 'insert into ' || rec.destinationtable || '(' || rec.destinationcolumn || ') select ' || rec.sourcecolumn || ' from ' || rec.sourcetable;
    END loop;
END;
/

SQL Fiddle