`
zhy584520
  • 浏览: 183907 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PL/SQL编程之游标使用

 
阅读更多

 

显示游标的操作步骤:定义游标、打开游标、提取数据、关闭游标

1.定义游标

cursor cursor_name is select_statement;

2.打开游标

open cursor_name;

3.提取数据

语法一:fetch cursor_name into variable1,variable2...;

语法二:fetch cursor_name bulk collect into collect1,collect2,...[limit rows];

4.关闭游标:

close cursor_name;

游标属性:cursor_name%ISOPEN,cursor_name%FOUND

cursor_name%NOTFOUND,cursor_name%ROWCOUNT

Example 1:

declare

cursor emp_cursor is

select ename,sal from emp where dept=10;

v_ename emp.ename%TYPE;

v_sal emp.sal%TYPE;

begin

open emp_cursor;

loop

fetch emp_cursor into v_ename,v_sal;

exit when emp_cursor%NOTFOUND;

dbms_output.put_line(v_ename||': '||v_sal);

end loop;

close emp_cursor;

end;

Example 2(在显示游标中,使用fetch.. bulk collect into语句提取数据):

declare

cursor emp_cursor is

select ename from emp where deptno=10;

TYPE ename_table_type is TABLE OF VARCHAR2(10);

ename_table ename_table_type;

begin

open emp_cursor;

fetch emp_cursor bulk collect into ename_table;

for i in 1.. ename_table.count loop

dbms_output.put_line(ename_table(i));

end loop;

close emp_cursor;

end;

Example 3:(使用游标属性)

declare

cursor emp_cursor is 

select ename from emp where deptno=10;

TYPE ename_table_type is TABLE OF VARCHAR2(10);

ename_table ename_table_type;

begin

if not emp_cursor%ISOPEN then

open emp_cursor;

end if;

fetch emp_cursor bulk collect into ename_table;

dbms_ouptput.put_line('提取的总计行数:'||emp_cursor%ROWCOUNT);

close emp_cursor;

end;

Example 4:(基于游标定义记录变量)

declare

cursor emp_cursor is select ename,sal from emp;

emp_record emp_cursor%ROWTYPE;

begin

open emp_cursor;

loop

fetch emp_cursor into emp_record;

exit when emp_cursor%NOTFOUND;

dbms_output.put_line('雇员名:'||emp_record.ename

||',雇员工资:'||emp_record.sal);

end loop;

close emp_cursor;

end;

Example 5:(参数游标)
定义参数游标时,游标参数只能指定
数据类型,而不能指定长度,定义参数游标语法如下:
cursor cursor_name(parameter_name datatype) is select_statement;
declare
cursor emp_cursor(no number) is 
select ename from emp where deptno=no;
v_ename emp.ename%type;
begin
open emp_cursor(10);
loop
fetch emp_cursor into v_ename;
exit when emp_cursor%NOTFOUND;
dbms_output.put_line(v_ename);
end loop;
close emp_cursor;
end;

分享到:
评论

相关推荐

    PL/SQL编程基础知识

    ### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库...

    PL/SQL编程(电子版)

    【PL/SQL编程】是Oracle数据库中用于数据库管理和应用程序开发的一种高级过程语言,它结合了SQL查询语言的威力和高级编程语言的灵活性。本章详细介绍了PL/SQL的基础知识,帮助初学者快速掌握该语言。 **4.1 PL/SQL...

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    1. **编程能力**:PL/SQL允许编写包含控制结构(如循环、条件语句)和异常处理的程序块,这些块可以存储在数据库中并按需调用,提高了数据库应用的灵活性和复杂性。 2. **数据处理**:通过PL/SQL,用户可以直接对...

    pl/sql最新中文手册

    这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册可能涵盖的一些核心知识点: 1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本...

    oracle10g_pl/sql

    Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...

    PL/SQL基础编程,实例自写

    ### PL/SQL基础编程知识点详解 #### 一、PL/SQL概述 PL/SQL,全称为Procedural Language for SQL,是Oracle数据库特有的高级程序设计语言。它结合了SQL的数据处理能力和传统编程语言的控制结构,使开发者能够在...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    Oracle PL/SQL是一种强大的编程语言,它将数据库管理和应用程序逻辑紧密结合起来,是Oracle数据库系统中的核心组件之一。这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例...

    Oracle PL/SQL编程详解

    Oracle PL/SQL编程详解是Oracle数据库开发人员必须掌握的技术之一。Oracle PL/SQL是一种用于Oracle数据库系统的程序设计语言,它是SQL语言的扩展,包含了许多能增加程序可读性和模块化的特性。PL/SQL代码被编译成...

    精通Oracle 10g PL/SQL编程

    《精通Oracle 10g PL/SQL编程》是中国水利水电出版社出版的一本专为数据库管理员、软件开发者和系统架构师量身打造的书籍,由王海亮、林立新等专家共同编著。这本书深入浅出地介绍了Oracle数据库中最重要的编程语言...

    精通pl/sql

    《精通PL/SQL》这本书是针对Oracle数据库系统中PL/SQL编程语言的深度解析与实践指南,主要面向希望提升在Oracle环境下使用PL/SQL技能的专业人士。PL/SQL,全称为Procedural Language/Structured Query Language,是...

    ORACLE PL/SQL从入门到精通

    循环语句是PL/SQL编程中用来重复执行一组语句的结构,包括loop、while、for三种形式,它们各自有不同的使用场景和语法。 分支条件语句在PL/SQL中用来根据不同的条件执行不同的代码分支,主要包括CASE表达式和if-...

    oracle pl/sql从入门到精通 配套源代码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...

    Oracle PL/SQL程序设计(第5版)(上下册)

    #### 一、PL/SQL编程基础 - **PL/SQL简介**:PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内嵌式过程化语言,用于增强SQL的功能。它允许在SQL查询的基础上添加控制流语句、变量定义、错误处理等特性...

    PL/SQL安装包

    PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种结合了SQL与过程编程的语言,用于在Oracle环境中开发数据库应用程序。PL代表Procedural Language,SQL则代表Structured Query Language。这个"PL/SQL安装包...

    基本PL/SQL编程

    Oracle PL/SQL编程是...以上只是PL/SQL编程的冰山一角,实际使用中还包括流程控制语句、游标处理、动态SQL、包、对象类型等更高级的概念。学习PL/SQL需要不断实践和深入研究,才能充分发挥其在数据库管理中的作用。

    PL/SQL编程

    总结来说,PL/SQL编程语言是Oracle数据库的核心技术之一,它在数据库编程领域扮演着重要的角色。熟练掌握PL/SQL不仅能够提高数据库操作的效率,还能编写出结构良好、功能强大的数据库应用程序。随着Oracle数据库版本...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...

    Oracle_PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库系统中的一个核心组成部分,它扩展了SQL的语法,使得数据库管理及应用程序开发更具灵活性和可编程性。PL/SQL融合了SQL查询和控制流语句,提供了处理复杂业务逻辑的能力。 PL/SQL的...

Global site tag (gtag.js) - Google Analytics