`

pl/sql部分:使用批量提取

阅读更多

通过使用 fetch...bulk collect into 语句,可以从游标结果集中一次提取所有数据。

 

-- 使用 fetch...bulk collect into 提取所有数据
/* 使用替代变量输入岗位,存放结果集到PL/SQL集合变量,并显示姓名与工资。*/
declare
       cursor emp_cursor is
        select * from emp where lower(job)=lower('&job'); -- 定义游标
       type emp_table_type is table of emp%rowtype;
       emp_table emp_table_type;
begin
     open emp_cursor; -- 打开游标
     fetch emp_cursor bulk collect into emp_table; -- 从游标结果集中一次性提取所有的数据
     close emp_cursor; -- 关闭游标
     for i in 1..emp_table.count loop
         dbms_output.put_line('姓名:'||emp_table(i).ename||',工资:$'||emp_table(i).sal);
     end loop;
end;

  

命令窗口执行:

输入值于job : clerk

输出:

 

 

 

为了限制提取的行数可以使用 limit 子句。使用 fetch...bulk collect into 提取所有数据时,如果游标结果集包含有大量的数据,并使用VARRAY集合变量接收数据,那么可能需要限制每次提取的行数。

 

/* 使用替代变量输入每次提取的行数,并显示所有的雇员姓名和工资。 */
declare
       cursor emp_cursor is 
        select * from emp;
       type emp_array_type is varray(5) of emp%rowtype;
       emp_array emp_array_type; -- 定义varray集合变量
begin
     open emp_cursor;
     loop
         fetch emp_cursor bulk collect into emp_array limit &rows;
         for i in 1..emp_array.count loop
             dbms_output.put_line('姓名:'||emp_array(i).ename||',工资:$'||emp_array(i).sal);
         end loop;
         exit when emp_cursor%notfound;
     end loop;
     close emp_cursor; -- 关闭游标
end;

 

命令窗口执行:

输入值于rows:4

输出:

 

 

 

  • 大小: 1.4 KB
  • 大小: 3.7 KB
分享到:
评论

相关推荐

    pl/sql 学习资料

    - 表类型:使用PL/SQL表类型进行集合操作。 -记录类型:定义和使用记录类型,类似于结构或对象。 5. **程序单元**: - 包(PACKAGE):定义公共接口和私有实现,提高代码复用性。 -存储过程和函数:创建存储在...

    Oracle PL/SQL学习官方教材

    "Oracle9i PL/SQL学习"这部分可能着重于Oracle 9i版本中的特性,虽然现在已经有更新的版本,但对初学者来说,理解早期版本的基本概念和语法是很有帮助的,因为许多核心原理在后续版本中仍然适用。通过深入学习这本...

    Oracle PL/SQL程序设计(第5版)示例代码

    Oracle PL/SQL程序设计是数据库开发中的核心技能之一,尤其在企业级应用中广泛使用。本书《Oracle PL/SQL程序设计(第5版)》由O'Reilly出版社出版,为学习和理解Oracle数据库的PL/ZIP编程语言提供了丰富的示例代码...

    PL/SQL教程

    2. **执行部分**:这是PL/SQL的主要部分,包含SQL语句、流程控制语句和PL/SQL特定的函数、过程和块。 3. **异常处理部分**:处理运行时可能出现的错误或异常。 **PL/SQL数据类型** PL/SQL支持多种数据类型,包括...

    Oracle8 PL/SQL高级程序设计.rar

    Oracle数据库是全球广泛使用的数据库管理系统之一,而PL/SQL则是Oracle特有的编程语言,用于数据库的交互和应用程序开发。"Oracle8 PL/SQL高级程序设计"的主题涵盖了在Oracle8环境中使用PL/SQL进行复杂编程和数据库...

    pl_sql.zip_fetch_pl/sql_pl_sql_plsql_plsql java

    在PL/SQL中,`FETCH`通常用于游标的处理,它是从游标中提取数据行的关键字。游标允许程序员逐行处理结果集,`FETCH`语句就是用来获取游标当前指向的行,并将其存储到变量中。例如,`type.sql`可能就包含了一些关于...

    oracle 10g pl/sql编程

    - **PL/SQL增强**:支持匿名块的块级别事务控制,增加了BULK COLLECT用于批量操作,提高了处理大量数据的效率。 通过学习《精通Oracle.10g.Pl.SQL编程》这本书,你可以掌握如何利用PL/SQL进行高效的数据库编程,...

    Oracle9i PL/SQL程序设计 code部分

    在"Oracle9i PL/SQL程序设计 code部分"中,我们可能涉及到以下几个关键知识点: 1. **PL/SQL基本语法**:包括声明变量、常量、游标、表类型、记录类型等,并学习如何使用BEGIN-END块定义程序结构,以及如何编写条件...

    oracle pl/sql 开发教程

    在本教程中,我们将深入探讨PL/SQL的关键知识点,包括如何创建程序块、处理异常、使用光标以及数组处理,同时也会介绍一些常用的函数,如DECODE(),并讨论PL/SQL的优化规则。 首先,让我们了解如何创建PL/SQL程序块...

    Web程序实现简易版PL/SQL和Execel表配置备份SQL语句

    - **数据提取**:使用SQL查询从数据库中选择需要备份的数据。 - **数据转换**:根据需求调整数据格式,例如,日期格式转换,去除空格等。 - **数据加载**:将转换后的数据写入Excel文件,可能使用Apache POI库...

    pl/sql 教材(英文)

    根据提供的文档信息,我们可以从标题、描述以及部分内容中提取出关于PL/SQL Developer 5.1用户指南的关键知识点。以下是对这些知识点的详细说明: ### PL/SQL Developer 5.1 用户指南 #### 1. 引言 - **概述**:本...

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。

    PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境(IDE),它提供了全面的功能,使得开发者可以高效地编写、测试和调试PL/SQL代码。PL/SQL是Oracle数据库中的过程化语言,它扩展了SQL,增加了流程控制、...

    PL_SQL_

    标题和描述均提到了"PL_SQL_",这实际上是指PL/SQL(Procedural Language for SQL),它是Oracle数据库的一部分,用于增强SQL的功能,提供过程化的编程能力。以下是从给定文件的部分内容中提取的关键知识点: ### ...

    PL_SQL软件使用指南

    1. **块结构**:PL/SQL程序由声明部分、执行部分和异常处理部分组成,称为PL/SQL块。声明部分定义变量和常量,执行部分包含语句和控制结构,异常处理部分处理运行时错误。 2. **变量与数据类型**:PL/SQL支持多种...

    精通Oracle 10g Pl SQL編程

    - 数据仓库和BI:使用PL/SQL进行数据提取、转换和加载(ETL)。 - 数据库安全:通过PL/SQL实施访问控制和审计。 通过学习《精通Oracle 10g PL/SQL编程》,读者可以掌握如何利用PL/SQL进行高效、安全的数据库编程...

    用Pl*SQL将Excel中数据导入到oracle中,将oracle的数据通过Pl*SQL导向Excel

    3. **导入数据**:使用“导入向导”选择CSV文件,设置好参数后导入数据。 4. **数据导出**:编写SQL查询获取需要导出的数据,然后使用“导出”功能选择CSV格式,保存到本地。 5. **Excel中打开并保存**:在Excel中...

    Oracle_PL-SQL入门教程(经典)

    3. **数据更新**:使用`UPDATE`语句可以修改现有记录。例如,`UPDATE tablename SET column1 = 'newvalue' WHERE condition`将满足条件的记录的column1字段更新为'newvalue'。 4. **数据删除**:`DELETE FROM`命令...

    精通oracle.10g.pl.sql编程 pdf 教程

    此外,PL/SQL还支持数组和记录类型,使得处理批量数据或复杂对象变得更为便捷。 函数和存储过程是PL/SQL的核心组成部分。函数返回一个值,而存储过程执行一系列操作但不返回值。两者都可以接受参数,并且可以被其他...

    PL SQL编程经验小结

    - 当PL/SQL需要返回多行数据给另一个PL/SQL程序,推荐使用集合(collections),因为它支持批收集,能显著提高数据提取速度。 - 如果需要将数据返回给宿主语言(如SQL*Plus、C或Delphi),则应使用游标变量,因为...

    Oracle Database 11g PLSQL编程实战

    - BULK COLLECT:批量收集多行数据到PL/SQL集合,提高性能。 6. **PL/SQL性能优化** - 使用绑定变量减少硬解析,提高SQL执行效率。 - 使用索引优化查询速度,避免全表扫描。 - 使用PL/SQL内置函数和操作符,...

Global site tag (gtag.js) - Google Analytics