我有2张表xyz和abc。 abc是xyz的子代,xyz中有两列,即xyz1,xyz2。
表abc中还有三列,即xyz1,abc1,abc2。
我想编写一个存储过程,我将传递两个参数。
123, 456.
123是表xyz中记录的主键。
查询应从父表和子表中获取123的记录,并插入具有主键456的新记录,其余字段为记录123.
我正在使用Oracle 8i。
答案 0 :(得分:1)
您只需要两个插入选择语句:
create or replace procedure(vi_fromkey integer, vi_tokey integer) as
begin
insert into xyz (xyz1, xyz2) select vi_tokey, xyz2 from xyz where xyz = vi_fromkey;
insert into abc (xyz1, abc1, abc2) select vi_tokey, abc1, abc2 from abc where xyz = vi_fromkey;
end;