pl/sql中bulk collect的用法
SQL 用法 PL bulk collect
2023-09-14 08:59:49 时间
bulk collect可以将查询结果一次性地加载到collections中,而不用一条一条地处理。在select into,fetch into,returning into语句使用使用bulk collect时,所有的into变量都必须是collections。
create table jy
object_id number(12),
object_name varchar2(20),
object_type varchar2(20)
在select into语句中使用bulk collect
declare
type object_list is table of jy.object_name%type;
objs object_list;
begin
select object_name bulk collect
into objs
from jy;
for r in objs.first .. objs.last loop
dbms_output.put_line(|| objs(r));
end loop;
在fetch into中使用bulk collect
declare
type objecttab is table of jy%rowtype;
objs objecttab;
cursor cob is
select object_id, object_name, object_type
from jy;
begin
open cob;
fetch cob bulk collect
into objs;
close cob; -- 把结果集一次fetch到collect中,我们还可以通过limit参数,来分批fetch数据
for r in objs.first .. objs.last loop
dbms_output.put_line( || objs(r).object_name);
end loop;
declare
type objecttab is table of jy%rowtype;
objs objecttab;
cursor cob is
select object_id, object_name, object_type
from jy;
begin
open cob;
fetch cob bulk collect
into objs limit 100;--每次取一百条数据这是可以根据你的数据库性能来决定的
exit when cob%notfound;
dbms_output.put_line(count: || objs.count || first: || objs.first ||
last: || objs.last);
for r in objs.first .. objs.last loop
dbms_output.put_line( objs(r)= || objs(r).object_name);
end loop;
end loop;
close cob;
在returning into中使用bulk collect
declare
type id_list is table of jy.object_id%type;
ids id_list;
type name_list is table of jy.object_name%type;
names name_list;
begin
delete from jy returning object_id, object_name bulk collect into ids,
names;
dbms_output.put_line(deleted || sql%rowcount || rows:);
for i in ids.first .. ids.last loop
dbms_output.put_line(object # || ids(i) || : || names(i));
end loop;
eric0435 系统架构师(高级工程师),ACOUG amp;CSOUG核心成员,Oracle Young Expert 。政府信息化技术顾问。湖南省政府采购评审专家,从2007年开始从事社会保险系统开发,应用架构设计,数据库管理工作。擅长Oracle数据库故障诊断,性能调优。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
eric0435 系统架构师(高级工程师),ACOUG amp;CSOUG核心成员,Oracle Young Expert 。政府信息化技术顾问。湖南省政府采购评审专家,从2007年开始从事社会保险系统开发,应用架构设计,数据库管理工作。擅长Oracle数据库故障诊断,性能调优。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
相关文章
- sqlserver截断字符和二进制数据_SQL异常字符串截断
- mybatis中的动态sql表现为_MybatisPlus
- Hsql 查询_sql数据查询
- SQL开发知识:浅析SQL中的group by 和 having 用法
- Pl/SQL 复合类型 RECORD 用法详解数据库
- 优化SQL Server内存占用的有效方法(sqlserver内存占用)
- Linux下将SQL文件导入数据库的命令指南(linux导入sql文件命令)
- /sql数据库应用:Oracle PL/SQL编程(oraclepl)
- 导入MySQL导入SQL文件的简易步骤(mysql将sql文件)
- 文件Linux快速导入SQL文件的方法(linux导入sql)
- MySQL导出SQL数据的工具推荐(mysql导出sql工具)
- Oracle数据库删除数据的常用SQL语句(oracle删除sql)
- 优化深入浅出Oracle 高效SQL优化(oracle高效sql)
- Oracle SQL实现数据去重(oraclesql去重)
- SQL Server集成R:实现分析的智能化(sqlserver集成R)
- 安全SQL Server账户安全:有效保护企业信息资产(sqlserver 账户)
- SQL Server实现多对多关系的绝佳方案(sqlserver多对多)
- 级技术引领:SQL Server 升级/降级指南(sqlserver升降)
- MSSQL恢复数据:从SQL文件进行还原(mssql还原sql文件)
- 语句MS SQL:每条SQL语句都有其特殊意义(mssql 每条sql)
- MySQL数据上传如何处理大型SQL文件大小(mysql上传sql大小)
- 理解Oracle SQL中AS的使用方式(oracle sql里as用法)
- Oracle SQL编程从入门到精通(oracle sql编译)
- Sql学习第一天——SQL练习题(建表/sql语句)
- sql学习之CASEWHENTHENELSEEND的用法