在 Oracle 数据库中使用 REF CURSOR 参数对函数和过程执行的操作

REF CURSOR 是一种 PL/SQL 数据类型,表示指向通过执行查询生成的服务器端结果集的指针。 REF CURSOR 类型支持数据的输入和输出流式传输,是向/从 PL/SQL 代码传输大量数据的理想选择。 Oracle 数据库适配器支持强类型和弱类型 (SYS_REFCURSOR) REF CURSOR,这些 REF CURSOR 可作为 IN、OUT 或 IN OUT 参数传递给 PL/SQL 过程和函数。

  • 在 REF 游标中。 适配器客户端必须通过将 PL/SQL 代码 (作为字符串) 在 Oracle 数据库上打开 REF CURSOR 来使用 IN REF CURSOR。 适配器创建变量并将其设置为打开的 REF CURSOR,并使用该变量调用函数或过程。 因此,PL/SQL 存储过程和函数中的 IN REF CURSOR 参数应表示为字符串,这些字符串将 PL/SQL 代码块作为输入值,用“?”标记 OUT REF CURSOR 变量。

  • OUT REF 光标。 OUT REF CURSOR 参数作为强类型或弱类型的结果集返回。 返回的结果集的类型取决于 REF CURSOR 参数是在 Oracle 服务器上的存储过程或函数定义中声明为强类型还是弱类型的 REF CURSOR。

  • IN OUT REF CURSOR 参数。 由于 Oracle 数据库适配器将 IN REF CURSOR 参数建模为字符串,将 OUT REF CURSOR 参数建模为复杂类型,因此它不能为 IN OUT REF CURSOR 参数支持单一类型。 出于此原因,它将 IN OUT REF CURSOR 参数视为两个不同的参数:请求消息中的 IN 参数和响应消息中的 OUT 参数。

    详细信息:

  • 使用BizTalk Server调用涉及 REF CURSOR 参数的函数或过程,请参阅使用 BizTalk Server 在 Oracle 数据库中使用 REF CURSORS 调用函数和过程

  • 使用 WCF 服务模型调用涉及 REF CURSOR 参数的函数或过程,请参阅 使用 WCF 服务模型在 Oracle 数据库中使用 REF CURSORS 运行操作

  • Oracle 数据库适配器支持的 REF CURSORS 的 XML 结构,请参阅 REF CURSORS 的消息架构

另请参阅

使用适配器连接到 Oracle 数据库