Oracle批量查询、删除、更新使用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
';
..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"的房屋账户的余额。
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
' RETURNING fund,bal BULK COLLECT INTO v_fund_table,v_bal_table;
..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 打开
- 以上的例子的目的主要是为了提高性能. 这里的性能主要指的是速度 .
- 速度指的是批量插入, 更新 , 删除 , 为什么会提高速度呢 ? 提取到的数据都在内存中进行处理, 因为在内存处理比较快 , 这是常识 .
@author:zhengwei
@date:2017-04-28
Oracle批量查询、删除、更新使用BULK COLLECT提高效率的更多相关文章
- 简单的php Mysql类(查询 删除 更新)
php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了. 代码如下 复制代码 class mysql { ...
- Mybatis批处理(批量查询,更新,插入)
mybatis批量查询 注意这里的 in 和 <trim prefix="(" suffix=")"> 以及 in ( )的三种方式的(例1(推 ...
- oracle数据库查询和更新
package sqltest; import java.sql.*; import parameter.BaseCanShu; public class PublicDbOracle { stati ...
- Oracle 创建,查询,删除 job
一 . 创建job 1. 通过创建存储过程的方式创建job 调用该存储过程使其开始执行 call PRO_DSJ_XJTJ_JOB(); create or replace procedure PR ...
- Redis批量查询删除KEYS
对腾讯云的Redis集群不支持很多指令(config get * .flushdb.flushall.等相关指令) redis指令限制:https://www.qcloud.com/document/ ...
- Mybatis 向oracle批量插入与更新数据
插入 <insert id="batchSave" parameterType="java.util.List"> INSERT INTO T_UP ...
- Oracle空查询删除
- Oracle性能优化之表压缩及并行提高效率的测试
1.制作测试表 create table t1 as select * from FW_T_GTXLOG insert into t1 select * from t1; create table t ...
- oracle学习之bulk collect用法
通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使 ...
随机推荐
- javascript获取json对象的key名称的两种方法
javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常 ...
- ORACLE中死锁的知识点总结
死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子 ...
- gulp+browserSync自动刷新页面
BrowserSync “Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平 ...
- spring和hibernate的整合
阅读目录 一.概述 二.整合步骤 1.大致步骤 2.具体分析 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让H ...
- win7热点设置
1.设置热点名称与密码 netsh wlan set hostednetwork mode=allow ssid=costa key=11112222pause 2.开启 netsh wlan sta ...
- CentOS7安装PostgreSQL9.4
这次选择的数据库安装的是run 文件,更容易掌握.这次数据库全是默认安装,如果有需求的可以自行修改一下的. 这是我的第一篇博客,各位观众老爷,如果觉得哪里有什么不好的,可以留言一起探讨,探讨.有什么问 ...
- bootstrap 架构知识点
.col-md-pull-2 向右相对定位偏移量 .col-md-push-2 向左相对定位偏移量 .pull-left 左浮动 .pull-right 右浮动 改变大小写 通过这几个类可以改 ...
- 安卓餐厅点餐系统---针对浩然android工作室的一个小白的分析
昨天刚把浩然android工作室的下载下来了,为了研究下点餐系统的架构,更好的完成手中的项目,便写出一个分析报告(小白的分析,忘见谅!) 本项目app主要用于餐厅无线订餐使用,功能突出餐厅的订餐需求, ...
- 反射型XSS的逆袭之路
0×00背景 这是一次结合各自技巧的渗透过程,由于原作者的截图不多,我们只是简单叙述一下思路~ 目标是一家本地的游戏公司,起因是找到一个反射型xss,但是却被对方公司忽略,而作者身边的一个妹子也在这家 ...
- zookeeper 新手安装指南
Zookeeper集群的角色: Leader 和 follower (Observer) zk集群最好配成奇数个节点 只要集群中有半数以上节点存活,集群就能提供服务 本事例采用版本:zookee ...