数据库讲义2游标、异常(课堂版)

数据库讲义2游标、异常(课堂版)

ID:36504068

大小:57.56 KB

页数:9页

时间:2019-05-11

数据库讲义2游标、异常(课堂版)_第1页
数据库讲义2游标、异常(课堂版)_第2页
数据库讲义2游标、异常(课堂版)_第3页
数据库讲义2游标、异常(课堂版)_第4页
数据库讲义2游标、异常(课堂版)_第5页
资源描述:

《数据库讲义2游标、异常(课堂版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.游标游标提供了一种从表中检索数据并进行操作的灵活手段。PL/SQL在执行SELECT、INSERT、DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(ContextArea),即缓冲区。游标是指向该区的一个指针,通过游标PL/SQL程序可以一次处理查询结果集中的一行,并可以对该行数据执行特定操作,从而为用户在处理数据的过程中提供方便。在oracle中,主要使用显式游标,隐式游标,动态游标(以后讲—存储过程实现分页的时候)。2.显式(示)游标显式游标是由用户声明和操作的一种游标,通常用于操作查询结果集(即由select语句返回的查询

2、结果),使用它处理数据的步骤为:声明游标、打开游标、读取游标和关闭游标4个步骤。其中,读取游标很可能是一个反复的步骤(迭代),因为游标每次只能读取一行数据,对于多条记录,需要反复读取,直到游标读取不到数据为止。2-1游标使用的步骤a.声明游标定义游标名字,以及对应的select语句。CURSORcursor_name[(input_parameter1[,input_parameter2]…)][RETURNret_type]ISselect_statement;cursor_name:所声明游标名称ret_name:执行游标操作后的返回值类型,这是一个可选

3、项。select_statement:游标所使用的select语句,为游标的反复读取提供了结果集。input_parameter1:游标的“输入参数”,可以有多个,这是可选项。它指定用户在打开游标后,向游标中传递的值,该参数的定义和初始化格式如下:para_name[in]datatype[{:=

4、default}para_value]其中,para_name表示参数名称,其后面的关键字"in"表示输入方向,可以省略;datatype表示参数的数据类型,但数据不可以指定长度;para_value表示该参数的初始值或默认值,也可以是表达式;para_name参

5、数的初始值可以用常规方式赋值(:=),也可以使用关键字default。示例代码:声明一个游标,用来读取emp表中职务是销售员(SALESMEN)的雇员信息。declarecursorcur_emp(var_jobinvarchar2:='SALESMEN')isselectempno,ename,salfromempwherejob=var_job;b.打开游标在游标声明完毕之后,必须打开才能使用,打开游标的语法:opencur_name[(para_values1[,para_values2]...)];cur_name:打开游标的名字para_value

6、s1:指定“输入参数”的值,根据声明游标时的实际情况,可以是多个或一个,这是可选项。示例代码:opencur_emp('MANAGER');c.读取游标fetchcur_nameinto{variable};variable:表明一个变量列表或者“记录”变量(RECORD类型),oracle使用“记录”变量来存储游标中的数据。在游标中包含了一个数据行指针,其用来指向当前数据行。刚刚打开游标时,指针指向结果集中的第一行,当使用fetch--into语句读取数据完毕后,游标中的指针自动指向下一行数据,直到指针指向结果集中最后一条记录之后为止(当最后一条记录为空时

7、,表示读取完毕),这是游标的%found属性值为false.4.关闭游标游标使用完毕后,需要关闭,以释放资源。closecur_name;整个游标操作的示例代码:declarecursorcur_emp(var_jobvarchar2:='SALESMAN')isselectempno,ename,salfromempwherejob=var_job;typerecord_empisrecord(var_empnoemp.empno%type,var_enameemp.ename%type,var_salemp.sal%type);emp_rowrecord

8、_emp;beginopencur_emp('MANAGER');fetchcur_empintoemp_row;whilecur_emp%foundloopdbms_output.put_line(emp_row.var_ename

9、

10、'的编号'

11、

12、emp_row.var_empno

13、

14、',的工资'

15、

16、emp_row.var_sal);fetchcur_empintoemp_row;endloop;closecur_emp;end;/2-2游标的属性游标有4个属性:%found:布尔型属性,如果SQL语句至少影响到一行的数据,该属性为true,否则为fal

17、se%notfound:布尔型属性,与%found相

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。