每一次只能插入一条记录值,那现在这样查询一次有多值,一定会报错。用过程可以实现:
declare
cursor tab2_sor is
select fieldx from table2 where...;
begin
for v_sor in tab2_sor loop
insert into table( Pk_id,field1,field2,field3)
values (seq_Pk_id.Nextval,v_sor.fieldx,....);
end loop;
end;
/
由于以下没能确定值,具体到语句上:
field2 in (sql.....),
field3 in (sql.....))
declare
cursor tab2_sor is
select fieldx from table2 where...;
begin
for v_sor in tab2_sor loop
insert into table( Pk_id,field1,field2,field3)
values (seq_Pk_id.Nextval,v_sor.fieldx,....);
end loop;
end;
/
由于以下没能确定值,具体到语句上:
field2 in (sql.....),
field3 in (sql.....))
insert into table( Pk_id,field1,field2,field3)
( SELECT seq_Pk_id.Nextval, fieldx from table2 where...)
其他的SQL也可以这样加进来,不过这些SQL产生的值间应该有一一对应关系
不知怎么写完那些语句.? 请写几个能运行的例子好吗?
( SELECT seq_Pk_id.Nextval, fieldx from table2 where...)
想用这框架句来做的,但不懂后边的怎么做.
table2结构 (id, name1,name2,name3 );
table3结构 (id,name3);id 做了个seq序号的,其中name2 ,name3是外键,需要根据这两个的值来插入新的id,和name1记录.
insert into table1(id, name1, name2_fkid, name3_fkid)
( select seq_Pk_id.Nextval, table2.name1, table2.id, table3.id
from table2, table3
where table2.name3 = table3.name3 )