plsql中如果我定义一个游标,然后打开这个游标,然后loop循环把查询出来的数据全部插入自己定义的表中

2024-11-27 09:39:33
推荐回答(2个)
回答1:

使用子查询执行直接装载
insert /*+APPEND */ into employee(empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp where deptno=20;

注意,要加上“/*+APPEND */",它表示直接装载方式,当装载大批量数据时,这是种做法效率很高。

回答2:

open那不会浪费太多时间。需要的时间就是两部分。
1.定义游标,获取结果集的时候。---这个时间主要看你的sql查询需要多长时间。
2.Loop的时候。----这个就是运行的时间了。

不过建议大量数据的话不要用游标来处理。
游标的处理速度是很慢的。效率比较低。最好能做批量处理。

我以前用游标做过数据处理,我那个业务逻辑比较复杂,每小时大概只能处理几十万数据。效率太低了。后来我都改成多步骤,用insert into select 。。from 这类的写法去处理,能差百八十倍的速度。