需求:
对于数据库的某些表,我们常要复制其对应的某条记录,新纪录与老记录仅有某一两个字段值不一样,其他完全一样。寻找简单的方案,而不是逐个字段拼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
若有更好方法,请指教。