Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我可以在INSERT语句中将记录作为参数吗?_Sql_Database_Oracle_Plsql_Data Warehouse - Fatal编程技术网

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

Sql 我可以在INSERT语句中将记录作为参数吗?,sql,database,oracle,plsql,data-warehouse,Sql,Database,Oracle,Plsql,Data Warehouse,我正在尝试填充一个新表T 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

我正在尝试填充一个新表T

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吗?还有没有更好的方法来做到这一点而不让它变得比现在更混乱?在真实的表中,我在a、b和c中各有10个“数据”列,所以我担心会出现问题或出现故障。我正在为数据仓库编写一个过程,该数据仓库接收来自三个不同来源的数据,并将它们组合到一个表中。

我可能需要进行一些处理,这就是我使用游标的原因。但如果我没有,我想知道我是否可以像上面提到的那样添加它。我没有oracle 11g,所以我也不认为我可以调用nextval而不必从双精度中选择。@user3786548-你可以使用
seq.nextval
而不必从双精度中选择,从10g开始。但我认为它们不适用于这种情况。分享和享受。我们一直能够在SQL语句中使用
a_seq.nextval
。在11g之前,如果不选择DUAL,我们无法在PL/SQL中进行变量赋值。
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