我可以在INSERT语句中将记录作为参数吗?

时间:2014-07-01 18:25:53

标签: sql database oracle plsql data-warehouse

我试图填充一张新桌子。

create or replace procedure extractData 
is

cursor c1 is
SELECT a.id,a.data,b.id,b.data,c.id,c.data
FROM a LEFT JOIN b ON a.id=b.id
LEFT JOIN c on b.id=c.id;

begin
for currRec in c1
loop
insert into table T
values currRec,(select a_seq.nextval from dual),(select b_seq.nextval from dual),(select b_seq.nextval from dual),SYSDATE
end loop

这会给我一个表格,其中包含来自currRec的列,然后是序列和SYSDATE吗?还有一种更好的方法来做到这一点,而不是让它比现在更麻烦吗?在真实的表中,我有大约10个数据' a,b和c中的列都是如此,所以我担心搞砸了或出了问题。我正在为数据仓库编写一个过程,该过程从三个不同的来源获取数据并将它们组合在一个表中。

1 个答案:

答案 0 :(得分:0)

INSERT
INTO    table
SELECT  a.id, a.data, b.id, b.data, c.id, c.data,
        a_seq.nextval, b_seq.nextval, c_seq.nextval,
        SYSDATE
FROM    a
LEFT JOIN
        b
ON      b.id = a.id
LEFT JOIN
        c
ON      c.id = b.id