• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle批量查询、删除、更新使用BULK COLLECT提高效率

Oracle批量查询、删除、更新使用BULK COLLECT提高效率

作者:回憶′亂人心 字体:[增加 减小] 来源:互联网 时间:2017-05-11

回憶′亂人心通过本文主要向大家介绍了oracle bulk collect,bulk collect,bulk collect into,fetch bulk collect,select bulk collect等相关知识,希望本文的分享对您有所帮助

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

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

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;
</div>

说明部分:

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"的房屋账户的余额。

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; 
</div>

说明部分:

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提高效率,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle批量查询、删除、更新使用BULK COLLECT提高效率
  • Oracle BULK COLLECT批量取数据解决方法
  • oracle下巧用bulk collect实现cursor批量fetch的sql语句

相关文章

  • 2017-05-11Oracle存储过程、包、方法使用总结(推荐)
  • 2017-05-11Oracle 监听器密码设置方法(LISTENER)
  • 2017-05-11Oracle性能究极优化 下
  • 2017-05-11Oracle数据库安全策略分析(一)第1/2页
  • 2017-08-22oracle数据库一个文本框输入多种条件的查询
  • 2017-05-11oracle的一些tips技巧
  • 2017-05-11一些Oracle数据库中的查询优化建议综合
  • 2017-05-11oracle中变长数组varray,嵌套表,集合使用方法
  • 2017-05-11ORACLE应用经验(1)
  • 2017-05-11Oracle中的INSTR,NVL和SUBSTR函数的用法详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • oracle使用order by排序null值如何处理
    • oracle 存储过程加密的方法
    • bitmap 索引和 B-tree 索引在使用中如何选择
    • Oracle中创建和管理表详解
    • oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
    • Oracle数据库的自动锁介绍
    • Oracle 表三种连接方式使用介绍(sql优化)
    • oracle查询不含括号及不含指定字符的方法
    • plsql和tsql常用函数比对
    • oracle的归档模式 ORACLE数据库归档日志常用命令

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有