Oracle REF CURSOR
Oracle .NET Framework 数据提供程序支持 Oracle REF CURSOR 数据类型。 在通过数据提供程序使用 Oracle REF CURSOR 时,应考虑下列行为。
注意 |
---|
有些行为与 Microsoft Oracle OLE DB 提供程序 (MSDAORA) 的行为不同。 |
因为性能的原因,除非您显式指定,否则,Oracle 数据提供程序不会自动绑定 REF CURSOR 数据类型,因为 MSDAORA 会这样做。
数据提供程序不支持任何 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 填充 DataSet
演示如何执行一个 PL/SQL 存储过程,返回两个 REF CURSOR 参数,并使用返回的行填充 DataSet。