WEB开发网
开发学院数据库MSSQL Server 全面解析数据库中游标的使用方法 阅读

全面解析数据库中游标的使用方法

 2008-11-20 10:11:08 来源:WEB开发网   
核心提示: SELECT语句是对表或视图的查询语句,甚至也可以是联合查询,全面解析数据库中游标的使用方法(4),可以带WHERE条件、ORDER BY或GROUP BY等子句,但不能使用INTO子句,要使用动态游标需要先定义一个游标类型,然后声明一个游标变量,在SELECT语句中可以使用在定义游标之前

SELECT语句是对表或视图的查询语句,甚至也可以是联合查询。可以带WHERE条件、ORDER BY或GROUP BY等子句,但不能使用INTO子句。在SELECT语句中可以使用在定义游标之前定义的变量。

例:

   DELCARE
  CURSOR C_EMP IS SELECT empno,ename,salary
  FROM emp   WHERE salary>1500
  ORDER BY ename;
  ........
  BEGIN

在游标定义中SELECT语句中不一定非要表可以是视图,也可以从多个表或视图中选择.

2.打开游标

使用游标中的值之前应该首先打开游标,打开游标初始化查询处理。打开游标的语法

OPEN 游标名 实际参数1,...;

打开游标时,SELECT语句的查询结果就被传送到了游标工作区。

例:

OPEN C_EMP;

3.提取数据

从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一

FETCH cursor_name INTO variable,..

对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变

在可执行部分,按以下格式将游标工作区中的数据取到变量中。提取操作必须在打开游标之后进行。

FETCH 游标名 INTO 变量名;

FETCH 游标名 INTO 记录变量;

游标打开后有一个指针指向数据区,FETCH语句一次返回指针所指的一行数据,要返回多行需重复执行,可以使用循环语句来实现。控制循环可以通过判断游标的属性来进行。

下面对这两种格式进行说明:

第一种格式中的变量名是用来从游标中接收数据的变量,需要事先定义。变量的个数和类型应与SELECT语句中的字段变量的个数和类型一致。

第二种格式一次将一行数据取到记录变量中,需要使用%ROWTYPE事先定义记录变量,这种形式使用起来比较方便,不必分别定义和使用多个变量。

定义记录变量的方法如下:

变量名 表名|游标名%ROWTYPE;

其中的表必须存在,游标名也必须先定义。

4.关闭游标

CLOSE 游标名;

例:

CLOSE C_EMP;

显式游标打开后,必须显式地关闭。游标一旦关闭,游标占用的资源就被释放,游标变成无效,必须重新打开才能使用。

Oracle支持动态SELECT语句和动态游标,动态的方法大大扩展了程序设计的能力。

对于查询结果为一行的SELECT语句,可以用动态生成查询语句字符串的方法,在程序执行阶段临时地生成并执行,语法是:

execute immediate 查询语句字符串 into 变量;

在变量声明部分定义的游标是静态的,不能在程序运行过程中修改。虽然可以通过参数传递来取得不同的数据,但还是有很大的局限性。通过采用动态游标,可以在程序运行阶段随时生成一个查询语句作为游标。要使用动态游标需要先定义一个游标类型,然后声明一个游标变量,游标对应的查询语句可以在程序的执行过程中动态地说明。

上一页  1 2 3 4 

Tags:全面 解析 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接