理论部分
–游标
–定义游标:DECLARE 游标名 CURSOR FOR SELECT 语句
在 SQL 过程中,游标除了迭代结果集中的行,还可以将结果集返回给调用程序或其他过程
•WITHOUT RETURN/WITH return:选项指定游标的结果表是否用于作为从一个过程中返回的结果集。
•WITH RETURN TO CALLER:选项指定将来自游标的结果集返回给调用者,后者可以是另一个过程或一个客户机应用程序。这是默认选项。
•WITH RETURN TO CLIENT:选项指定将来自游标的结果集返回给客户机应用程序,绕过任何中间的嵌套过程。
–下面是游标声明的几个例子:
1.DECLARE c1 CURSOR FOR select * from staff; --(DECLARE关键字,cl游标名称,CURSOR是必须有的,指通过c1的游标来操作staff里所有的数据)最常用的最普通的。
2.DECLARE c1 CURSOR WITH HOLD FOR select * form staff; --如果不加with hold则此游标遇到commit或者rollback语句会自动关闭。加上了with hold 则必须用close关闭。
3.DECLARE c1 CURSOR WITH RETURN TO CALLER FOR select * form staff;
4.DECLARE c1 CURSOR WITH RETURN TO CLIENT FOR select * form staff;
若要从一个过程中返回结果集,需要:
•创建一个过程,创建时指定 DYNAMIC RESULT SETS 子句中声明存储过程将要返回结果集的数量。
•声明游标,声明时指定 WITH RETURN