--oralce复制行的小技巧
--新纪录与老记录仅有某一两个字段值不一样(此案例为deptno,empno),其他字段完全一样
declare
cursor emp_cursor is select * from emp where deptno=10;--关联游标与select语句
v_max_empno emp.empno%type;
v_sql varchar2(200):='select max(empno) from emp';
begin
execute immediate v_sql into v_max_empno;--动态执行sql,给v_max_empno赋值
for emp_row in emp_cursor --emp_row代表index
loop
exit when emp_cursor%notfound;
v_max_empno:=v_max_empno+1;
emp_row.deptno:=40;--修改部门编号
emp_row.empno:=v_max_empno;--修改主键值
insert into emp values emp_row;
end loop;
end;
--新纪录与老记录仅有某一两个字段值不一样(此案例为deptno,empno),其他字段完全一样
declare
cursor emp_cursor is select * from emp where deptno=10;--关联游标与select语句
v_max_empno emp.empno%type;
v_sql varchar2(200):='select max(empno) from emp';
begin
execute immediate v_sql into v_max_empno;--动态执行sql,给v_max_empno赋值
for emp_row in emp_cursor --emp_row代表index
loop
exit when emp_cursor%notfound;
v_max_empno:=v_max_empno+1;
emp_row.deptno:=40;--修改部门编号
emp_row.empno:=v_max_empno;--修改主键值
insert into emp values emp_row;
end loop;
end;