存储过程中输出参数为游标的时候怎么处理
来源:互联网 发布:单片机的内部资源 编辑:程序博客网 时间:2024/06/06 12:39
http://msdn.microsoft.com/zh-cn/library/ms175498(v=sql.90).aspx
Transact-SQL 存储过程只能将 cursor 数据类型用于 OUTPUT 参数。如果为某个参数指定了 cursor 数据类型,也必须指定 VARYING 和 OUTPUT 参数。如果为某个参数指定了 VARYING 关键字,则数据类型必须是 cursor,并且必须指定 OUTPUT 关键字。
在执行过程时,以下规则适用于 cursor 输出参数:
- 对于只进游标,游标的结果集中返回的行只是那些存储过程执行结束时处于或超出游标位置的行,例如:
- 在过程中的名为 RS 的 100 行结果集上打开一个非滚动游标。
- 过程提取结果集 RS 的头 5 行。
- 过程返回到其调用者。
- 返回到调用者的结果集 RS 由 RS 的第 6 到 100 行组成,调用者中的游标处于 RS 的第一行之前。
- 在过程中的名为 RS 的 100 行结果集上打开一个非滚动游标。
- 对于只进游标,如果存储过程完成后,游标位于第一行的前面,则整个结果集将返回给调用批处理、存储过程或触发器。返回时,游标将位于第一行的前面。
- 对于只进游标,如果存储过程完成后,游标的位置超出最后一行的结尾,则为调用批处理、存储过程或触发器返回空结果集。
注意: 空结果集与空值不同。 - 对于可滚动游标,在存储过程执行结束时,结果集中的所有行均会返回给调用批处理、存储过程或触发器。返回时,游标保留在过程中最后一次执行提取时的位置。
- 对于任意类型的游标,如果游标关闭,则将空值传递回调用批处理、存储过程或触发器。如果将游标指派给一个参数,但该游标从未打开过,也会出现这种情况。
注意: 关闭状态只有在返回时才有影响。例如,可以在过程中关闭游标,稍后再打开游标,然后将该游标的结果集返回给调用批处理、存储过程或触发器。
在下面的示例中,创建了使用 cursor 数据类型指定输出参数 @currency
_cursor
的存储过程。然后在批处理中调用存储过程
首先,创建以下过程,在 Currency 表上声明并打开一个游标。
USE AdventureWorks;GOIF OBJECT_ID ( 'dbo.uspCurrencyCursor', 'P' ) IS NOT NULL DROP PROCEDURE dbo.uspCurrencyCursor;GOCREATE PROCEDURE dbo.uspCurrencyCursor @CurrencyCursor CURSOR VARYING OUTPUTAS SET NOCOUNT ON; SET @CurrencyCursor = CURSOR FORWARD_ONLY STATIC FOR SELECT CurrencyCode, Name FROM Sales.Currency; OPEN @CurrencyCursor;GO
接下来,执行一个批处理,声明一个局部游标变量,执行上述过程以将游标赋值给局部变量,然后从该游标提取行。
USE AdventureWorks;GODECLARE @MyCursor CURSOR;EXEC dbo.uspCurrencyCursor @CurrencyCursor = @MyCursor OUTPUT;WHILE (@@FETCH_STATUS = 0)BEGIN; FETCH NEXT FROM @MyCursor;END;CLOSE @MyCursor;DEALLOCATE @MyCursor;GO
- 存储过程中输出参数为游标的时候怎么处理
- JDBC调用存储过程输出游标参数的存储过程
- JAVA调用存储过程输出参数为游标
- 示例12 存储过程和参数为输出类型游标
- 存储过程数据集输出参数类型为非游标
- JAVA中使用参数含有游标的存储过程
- 存储过程中游标带参数
- 存储过程中游标以及异常的处理
- java 调用Oracle存储过程(输入参数,输出参数,游标)的使用!
- 存储过程返回OUT参数的游标
- oracle 存储过程 带游标作为OUT参数输出
- oracle存储过程(游标作为OUT参数输出)
- java调用输入参数、输出参数、输出参数为列表的存储过程(一)
- java调用输入参数、输出参数、输出参数为列表的存储过程(二)
- 创建ORCLE存储过程含有一个输出游标参数和输出整型参数(实现对表的分页效果)
- oracle动态sql:存储过程中动态调用存储过程,并且动态调用的存储过程出参数游标
- ORACLE存储过程输出游标
- 存储过程输出参数:C#中调用输入输出参数的存储过程
- 项目管理的九大体系
- 介绍一个可以把东西传到LINUX下的FTP客户端
- UNIX Domain Socket IPC
- linux 下的sar工具命令小结
- linux下进程统计小结
- 存储过程中输出参数为游标的时候怎么处理
- 苏GOOD广州美食路线
- 需要车牌的训练样本图片,到哪里去找呢?
- 对比RAID1和RAID5
- 再次提醒各位struts2的用户注意这个超级安全漏洞
- 学友新碟<<private corner迷你音乐会>>CD/DVD超赞呀
- 交换资料,结识朋友,广州的朋友来看,送书了
- 新版本php 5.3安装中short_tag的问题
- Android调用Servlet与MySQL交互