Oracle REF CURSOR
适用于 Oracle 的 .NET Framework 数据提供程序支持 Oracle REF CURSOR 数据类型。 在通过数据提供程序使用 Oracle REF CURSOR 时,应考虑下列行为。
备注
有些行为与 Microsoft Oracle OLE DB 提供程序 (MSDAORA) 的行为不同。
出于性能原因,除非显式指定,否则 Oracle 数据提供程序不会像 MSDAORA 一样自动绑定 REF CURSOR 数据类型。
数据提供程序不支持任何 ODBC 转义序列,包括用于指定 REF CURSOR 参数的 {resultset} 转义。
若要执行会返回 REF CURSOR 的存储过程,必须在 OracleParameterCollection 中定义参数,包括 Cursor 的 OracleType 以及 Output 的 Direction。 数据提供程序只支持作为输出参数绑定 REF CURSOR。 提供程序不支持 REF CURSOR 作为输入参数。
不支持从参数值获取 OracleDataReader。 在执行命令后,值属于 DBNull 类型。
适用于 REF CURSOR 的唯一 CommandBehavior 枚举值(例如在调用 ExecuteReader 时)是 CloseConnection,所有其他枚举值均会被忽略。
REF CURSOR 在 OracleDataReader 中的顺序取决于这些参数在 OracleParameterCollection 中的顺序。 ParameterName 属性被忽略。
不支持 PL/SQL TABLE 数据类型。 但是,REF CURSOR 的效率更高。 如果必须使用 TABLE 数据类型,请使用 OLE DB .NET 数据提供程序和 MSDAORA。
本节内容
REF CURSOR 示例
包含三个示例,演示如何使用 REF CURSOR。
OracleDataReader 中的 REF CURSOR 参数
演示如何执行 PL/SQL 存储过程,返回一个 REF CURSOR 参数,并作为 OracleDataReader 读取此值。
使用 OracleDataReader 从多个 REF CURSOR 中检索数据
演示如何执行 PL/SQL 存储过程,返回两个 REF CURSOR 参数,并使用 OracleDataReader 读取这些值。
使用一个或多个 REF CURSOR 填充数据集
演示如何执行一个 PL/SQL 存储过程,返回两个 REF CURSOR 参数,并使用返回的行填充 DataSet。