第5章PL-SQL-3分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 PL/SQL介绍 5.7 游标 PL/SQL通过游标提供了对一个结果集进行逐行处理的能力,游标可看作一种特殊的指针,它与某个查询结果相联系,可以指向结果集的任意位置,以便对指定位置的数据进行处理。使用游标可以在查询数据的同时对数据进行处理。 (1)显式游标 (2)隐式游标 (3)游标变量 5.7.1显式游标 显式游标首先要声明(Declare),然后打开(Open),使用后关闭(Close)。 (1) 声明游标 显式游标是作为声明段的一部分进行定义的,定义的方法如下:    DECLARE CURSOR cursor_name    IS    select_statement 其中,cursor_name是游标名,要遵循Oracle变量定义的规则。Select_statement是SELECT语句,由该查询产生与所声明的游标 相关联的结果集。 例如,下面是一个游标定义实例:    DECLARE CURSOR XS_CUR1    IS    SELECT XH,XM,CJ    FROM XS       WHERE ZYM=’计算机’; 5.7.1显式游标 (2) 打开游标 声明游标后,要使用游标从中提取数据,就必须先打开游标。 在PL/SQL中,使用OPEN语句打开游标,其格式为: OPEN cursor_name 其中,cursor_name是要打开游标名。 5.7.1显式游标 (3)  读取数据 游标打开后,就可以使用FETCH语句从中读取数据。FETCH语句的格式为: FETCH cursor_name [ INTO variable_name,…n] 其中,Cursor_name为从中提取数据的游标名,INTO表示将读取的游标数据存放到指定的变量variable_name中。 (4) 关闭游标 游标使用完以后,要及时关闭。关闭游标使用CLOSE语句,格式为: CLOSE cursor_name; 例如: CLOSE XS_CUR3; 关闭游标即释放所占的内存区。     5.7.1显式游标 例:输出专业名为计算机的学生的学号和总学分 DECLARE   v_xh char(6);   v_zxf number(2);   CURSOR XS_CUR3    IS SELECT XH,ZXF   FROM XS       WHERE ZYM=’计算机’;    BEGIN  OPEN XS_CUR3;  FETCH XS_CUR3 INTO v_xh,v_zxf;  WHILE XS_CUR3%FOUND  LOOP     DBMS_OUTPUT.PUT_LINE(该学生学号为:||v_xh||,总学分为:||v_zxf);     FETCH XS_CUR3 INTO v_xh,v_zxf;  END LOOP;  CLOSE XS_CUR3; END; 5.7.1显式游标 上面的例子用游标的FOR循环重写如下: DECLARE CURSOR xs_cur3 IS SELECT XH,ZXF FROM XS WHERE ZYM=计算机; BEGIN FOR XS_CUR IN XS_CUR3//for循环的变量不需要声明 LOOP DBMS_OUTPUT.PUT_LINE(XS_CUR.XH||XS_CUR.ZXF); END LOOP; END; 5.7.1显式游标 在使用显式游标时,必须编写四部分代码: (1) 在PL/SQL块的DECLARE段中定义游标。 (2) 在PL/SQL块中初始BEGIN后打开游标。 (3)在可执行部分,按以下格式将游标工作区中的数据取到变量中。 提取操作必须在打开游标之后进行。 FETCH 游标名 INTO 变量名1[,变量名2...]; 或 FETCH 游标名 INTO 记录变量; 游标打开后有一个指针指向数据区,FETCH语句一次返回指针所指的 一行数据,要返回多行需重复执行,可以使用循环语句来实现。控制循 环可以通过判断游标的属性来进行。 第一种格式中的变量名是用来从游标中接收数据的变量,需要事先定义。 变量的个数和类型应与SELECT语句中的字段变量的个数和类型一致。 第二种格式一次将一行数据取到记录变量中,需要使用%ROWTYPE事先 定义记录变量,这种形式使用起来比较方便,不必分别定义和使用多个 变量。 定义记录变量的方法如下: 变量名 表名|游标

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档