Oracle复制行记录的小技巧

需求:

对于数据库的某些表,我们常要复制其对应的某条记录,新纪录与老记录仅有某一两个字段值不一样,其他完全一样。寻找简单的方案,而不是逐个字段拼Sql。

 

解决方案1:

begin

  for rs in (select * from dept where deptno=40)

  loop

    rs.deptno:=50;

    insert into dept values rs;

  end loop;

end;

/

 

解决方案2:

declare

  cursor dept_cursor is select * from dept where deptno=40;

begin

  for dept_rs in dept_cursor

  loop

    exit when dept_cursor%notFound;

    dept_rs.deptno:=null;

    insert into dept values dept_rs;

  end loop;

end;

/

 

备注:

查询的 表名 与插入的 表名 可以不一样,例如,查询:descartes,插入descartes_history

 

若有更好方法,请指教。

你可能感兴趣的:(oracle)