首页 文章

从现有表中获取记录并在Oracle中插入新记录

提问于
浏览
0

我有2个表xyz和abc . abc是xyz的子代,xyz中有两列,即xyz1,xyz2 .

表abc中还有三列,即xyz1,abc1,abc2 .

我想编写一个存储过程,我将传递两个参数 .

123, 456.

123是表xyz中记录的主键 .

该查询应该从父表和子表中获取123的记录,并插入具有主键456的新记录,并且其余字段是记录123 .

我正在使用Oracle 8i .

1 回答

  • 1

    您只需要两个insert select语句:

    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;
    

相关问题