1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。
2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。
使用例子:
(1)定义一个TABLE
CREATE OR REPLACE TYPE string_table AS TABLE OF VARCHAR2(100);
(2)在存储过程里面测试
DECLARE
v_table string_table;
BEGIN
SELECT cust_name
BULK COLLECT INTO v_table
FROM cust c
WHERE c.cust_id BETWEEN 64561 AND 64565;
FORALL idx IN 1..v_table.COUNT
INSERT INTO cust_test VALUES(v_table(idx));
COMMIT;
END;
==============================================================================
CREATE TABLE parts1 (pnum INTEGER, pname VARCHAR2(15));
CREATE TABLE parts2 (pnum INTEGER, pname VARCHAR2(15));
DECLARE
TYPE NumTab IS TABLE OF parts1.pnum%TYPE INDEX BY PLS_INTEGER;
TYPE NameTab IS TABLE OF parts1.pname%TYPE INDEX BY PLS_INTEGER;
pnums NumTab;
pnames NameTab;
iterations CONSTANT PLS_INTEGER := 500000;
t1 INTEGER;
t2 INTEGER;
t3 INTEGER;
BEGIN
FOR j IN 1..iterations LOOP -- load index-by tables
pnums(j) := j;
pnames(j) := 'Part No. ' || TO_CHAR(j);
END LOOP;
t1 := DBMS_UTILITY.get_time;
FOR i IN 1..iterations LOOP -- use FOR loop
INSERT INTO parts1 VALUES (pnums(i), pnames(i));
END LOOP;
t2 := DBMS_UTILITY.get_time;
FORALL i IN 1..iterations -- use FORALL statement
INSERT INTO parts2 VALUES (pnums(i), pnames(i));
t3 := DBMS_UTILITY.get_time;
DBMS_OUTPUT.PUT_LINE('Execution Time (secs)');
declare
type numlist is varray(6) of number;
depts numlist := numlist(10,20,30,50,60,80);
begin
forall j in 2..4
delete from emp where deptno=depts(j);
commit;
end;
分享到:
相关推荐
OneForAll是一款由Python编写的子域名收集工具,它可以帮助安全测试人员和渗透测试人员自动化地获取目标网站相关的子域名信息。OneForAll在设计时兼顾了准确性和速度,可以通过多种方式进行子域名的发现,例如DNS...
懂得都懂 安装时进入该文件所在目录cmd 之后输入:...示例: python3 oneforall.py --target example.com run /*收集*/ ...python oneforall.py --target example.com run 使用时需进入所在目录!!!记得配置python环境
ABAP for all entries使用中注意的问题
本文介绍了 使用 forall 来提高sql执行的效率。并通过对合格员工加薪存储过程的实例介绍,揭示了使用forall的好处
navicat_premium_12 for all是一个支持主流数据库管理的图形化软件,支持mysql,oracle,postgresql等。 我在windows7和windows10的64位系统下,安装了64位的navicat_premium_12 for all 版本,均可用。该安装软件...
Antennas for all Applications
for all 用法小结详细谈了ORACLE 中的SQL 语句用法,绑定变量相关内容。值得一看。
经典教材 天线(中文版) - 克劳斯 - Antennas For All Applications - Kraus - Third Edition 共两部分请分别下载并置于同一文件夹后解压
关于Oracle FORALL用法的小结
记录 集合 BULK COLLECT FORALL 执行计划
:oncoming_fist: OneForAll是一款功能强大的子域收集工具 :memo: :rocket:上手指南 :loudspeaker:请推荐花一点时间阅读此文档,有助于你快速熟悉OneForAll! :snake:安装要求OneForAll基于开发和测试,OneFor...
这个东西是从别人的成果,我只是把它从网页上面复制到word里面了。不过根据本人实际测试for all entries 能不用就尽量不要用,如果是key field的时候可以考虑一下
boost 145 for all boost 145 for all boost 145 for all boost 145 for all
在Oracle 10g前,FORALL语句的语法只能处理连续性的数组元素。Oracle 10g解决了这两方面的问题,并增加了INDICES OF和VALUES OF子句。本文介绍了这两个子句的语法。
boost 145 for all2 boost 145 for all2 boost 145 for all2 boost 145 for all2
Antenna design technology and principle for graduates and engineers.The author John D.Kraus is IEEE life fellow.
6G——The Next Hyper Connected Experience for All(46页).pdf
Fragments for All Presentation.pdf 英文版,介绍了Fragment的使用
OneForAll软件包
adobe cs key for all