BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记。

例1: 批量查询项目资金账户号为 "320001054663"的房屋账户信息并把它们打印出来 .

sql;">

DECLARE

TYPE acct_table_type IS TABLE OF my_acct%ROWTYPE INDEX BY BINARY_INTEGER;

v_acct_table acct_table_type;

BEGIN

SELECT * BULK COLLECT INTO v_acct_table FROM my_acct WHERE parent_fund='320001054663';

FOR i IN 1..v_acct_table.COUNT LOOP

---循环打印

dbms_output.put_line('ACCT:'||v_acct_table(i).fund|| ','||v_acct_table(i).bal||','||v_acct_table(i).real_nmbr);

END LOOP;

END;

说明部分:

1. DECLARE 说明以下你要声明的部分

2. Type 声明是类型acct_table_typ e 类型的名字

3. IS TABLE OF 指定是一个集合的表的数组类型,简单的来说就是一个可以存储一列多行的数据类型,my_acct指出在哪个表上( 存在的表 ) %ROWTYPE 指在表上的行的数据类型.

4. INDEX BY BINARY_INTEGER 指索引组织类型

5. v_acct_table 定义一个变量来存储集合数据类型

6. BULK COLLECT INTO 指是一个成批聚合类型,简单的来说,它可以存储一个多行多列存储类型,into 后面指定从哪里来,

7. v_acct_table.COUNT 用来 v_acct_table 里面的数量

8. (i)表示下标号

例2: 批量更新项目资金账户号为 "320001054663"的房屋账户的余额。

sql;">

DECLARE

TYPE fund_table_type IS TABLE OF acct.fund%TYPE;

TYPE bal_table_type IS TABLE OF acct.bal%TYPE;

v_fund_table fund_table_type;

v_bal_table bal_table_type;

BEGIN

UPDATE acct SET bal=bal*1000 WHERE parent_fund='320001054663' RETURNING fund,bal BULK COLLECT INTO v_fund_table,v_bal_table;

FOR i IN 1..v_fund_table.COUNT LOOP

dbms_output.put_line('ACCT:'||v_fund_table(i)||','||v_bal_table(i));

END LOOP;

END;

说明部分:

1. %TYPE和 acct.fund数据类型一样

v_fund_table fund_table_type;

2. v_bal_table bal_table_type; 定义变量来存储它们 .

3. RETURNING 用来指定要返回的部分,BULK COLLECT INTO 成批聚合类型

4. 用for 把它们打印出来

总结 :

实验时把set serveroutput on 打开

以上的例子的目的主要是为了提高性能. 这里的性能主要指的是速度 .

速度指的是批量插入,更新,删除,为什么会提高速度呢 ? 提取到的数据都在内存中进行处理,因为在内存处理比较快,这是常识 .

以上所述是小编给大家介绍的Oracle批量查询、删除、更新使用BULK COLLECT提高效率,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程之家网站的支持!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

oracle批量查询更新,Oracle批量查询、删除、更新使用BULK COLLECT提高效率相关推荐

  1. mysql利用外连接删除数据_MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新...

    1.内连接查询:inner join ... on 只有满足条件的记录才能够出现在结果关系中,即完全相等.自连接查询是一种特殊的内连接查询. 2.外连接查询: 1>左外连接 / 左连接:返回包括 ...

  2. bulk怎么使用oracle,oracle学习之bulk collect用法

    通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使 ...

  3. oracle 批量读,Oracle批量读取数据和批量绑定

    通常我们获取游标数据是用 fetch some_cursor into var1, var2 的形式,自 Oracle 8i 起,Oracle 为我们提供了 fetch bulk collect 来批 ...

  4. 红橙Darren视频笔记 条件查询 删除 更新,数据库结合http做缓存机制(数据库操作)下

    查询 更新 删除的实现 修改IDaoSupport接口部分 删除查询部分 增加返回查询支持类接口 增加删除更新的接口 // 获取专门查询的支持类 按照语句查询QuerySupport<T> ...

  5. ef oracle 批量更新慢_详解Oracle中多表关联批量插入、批量更新与批量删除

    概述 今天主要介绍一下Oracle数据库中多表关联批量插入.多表关联批量更新和多表关联批量删除.下面用实验来理解下~ 一.创建必须的表和序列语句 --创建部门表 dept:CREATE TABLE d ...

  6. oracle数据库视图:定义、查询与更新 实践学习报告

    本篇博客分享SQL语言视图操作--详细实践学习报告(以截图方式展示) 软件:Oracle SQL Developer 目录 1.学生-课程数据库 2.视图 ①定义视图 ②查询视图 ③更新视图 ④视图的 ...

  7. oracle查询挂起,表挂起更新查询Oracle 11g(Table hangs on Update query Oracle 11g)

    表挂起更新查询Oracle 11g(Table hangs on Update query Oracle 11g) 我正在更新一个Oracle表字段,引用另一个具有类似Key字段的表,但在此特定表上, ...

  8. oracle修改查询结果,Oracle使用查询结果更新表的方法

    Oracle使用一个查询的结果更新另一个表的数据. 模拟实验如下,使用t2表的查询结果,更新t1表相同id的数据. drop table t1; drop table t2; create table ...

  9. 批量查询圆通物流,并筛选更新量为1的单号

    当你拥有多个圆通单号时,我们可以启用快递批量查询高手批量查询物流,筛选更新量为1的单号,即揽收后没有物流的单号,下面一起来操作. 单号物流效果: 筛选单号效果: 至于如果批量查询单号物流的呢?首先打开 ...

最新文章

  1. 文件管理系统_我的文件管理系统
  2. C语言将字符串转换成对应的数字(十进制、十六进制)【转】
  3. pwdencrypt,pwdcompare
  4. java arp 攻击_用JAVA代码实现ARP攻击 | 学步园
  5. KVM虚拟机禁止上网(路由转发)
  6. server 2008 mysql 报错 0xc000007b_这十个MySQL经典错误,99%的程序员一定遇到过!你呢?...
  7. TypeScript声明文件
  8. Silverlight 获得鼠标位置
  9. 脑子好,蹦两下!--程序员应该玩的小游戏
  10. C++ const与static
  11. python订餐系统简单版
  12. react中使用video标签显示本地视频不生效问题
  13. 一文搞定权限设计模型(RBAC,ABAC)超详细图文解析
  14. WP-Super-Cache的使用
  15. Kotlin协成的简单理解
  16. 点估计(矩估计法和最大似然估计法)
  17. 聊一聊最近比较火的多云管理平台
  18. 北京车辆过户全过程(详细得狠)20160729更新,图4幅
  19. 实名核验类API推荐
  20. 利用labelme生成Mask

热门文章

  1. xmind zen 同步问题解决 坚果云
  2. 计算机游戏 英文作文,电脑游戏英语作文
  3. uiautomatorviewer报错解决
  4. -atime、-ctime、mtime、-newer
  5. 服务器的server2016系统怎么装,windowsserver2016安装桌面教程
  6. 北京农学院计算机调剂,2020北京农学院植物科学技术学院招收硕士研究生调剂...
  7. 服务器主板最多能装几个cpu,双路主板能不能只用一块CPU?
  8. SD卡、记忆棒等内存卡的数据恢复方法
  9. Balanced MSE 使用指南
  10. PCB的板层设计和布线