Oracle REF CURSOR

用于 Oracle 的 .NET Framework 数据提供程序支持 Oracle REF CURSOR 数据类型。 在通过数据提供程序使用 Oracle REF CURSOR 时,应考虑下列行为。

注释

某些行为与用于 Oracle 的 Microsoft OLE DB 提供程序(MSDAORA)的行为不同。

  • 出于性能原因,Oracle 数据提供程序不会像 MSDAORA 那样自动绑定 REF CURSOR 数据类型,除非显式指定它们。

  • 数据提供程序不支持任何 ODBC 转义序列,包括用于指定 REF CURSOR 参数的 {resultset} 转义。

  • 若要执行返回 REF CURSOR 的存储过程,必须在 OracleParameterCollection 中定义参数,OracleType 类型为 CursorDirection 类型为 输出。 数据提供程序仅支持将 REF CURSOR 绑定为输出参数。 提供程序不支持 REF CURSOR 作为输入参数。

  • 不支持从参数值获取OracleDataReader。 执行命令后,这些值的类型为DBNull

  • 使用 REF CURSOR(例如,在CommandBehavior中调用时)唯一有效的枚举值是CloseConnection;所有其他的枚举值都会被忽略。

  • REF CURSOR OracleDataReader 的顺序取决于 OracleParameterCollection 中的参数顺序。 将忽略该 ParameterName 属性。

  • 不支持 PL/SQL TABLE 数据类型。 但是,REF CURSOR 更高效。 如果必须使用 TABLE 数据类型,请在 MSDAORA 中使用 OLE DB .NET 数据提供程序。

本节中

REF CURSOR 示例 包含三个演示如何使用 REF CURSOR 的示例。

OracleDataReader 中的 REF CURSOR 参数 演示如何执行返回 REF CURSOR 参数的 PL/SQL 存储过程,并将值读取为 OracleDataReader

使用 OracleDataReader 从多个 REF CURSOR 检索数据 演示如何执行返回两个 REF CURSOR 参数的 PL/SQL 存储过程,并使用 OracleDataReader 读取值。

使用一个或多个 REF CURSOR 填充数据集 演示如何执行返回两个 REF CURSOR 参数的 PL/SQL 存储过程,并填充 DataSet 返回的行。

另请参阅