用于 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 类型为
Cursor且 Direction 类型为 输出。 数据提供程序仅支持将 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 返回的行。