Поделиться через


Oracle REF CURSORs

Поставщик данных .NET Framework для Oracle поддерживает тип данных Oracle REF CURSOR . При использовании поставщика данных для работы с Oracle REF CURSORs следует учитывать следующее поведение.

Замечание

Некоторые поведения отличаются от поведения поставщика Microsoft OLE DB для Oracle (MSDAORA).

  • В целях оптимизации производительности поставщик данных для Oracle не привязывает автоматически типы данных REF CURSOR, если вы их явно не укажете, как это делает MSDAORA.

  • Поставщик данных не поддерживает последовательности экранирования ODBC, включая последовательность экранирования {resultset}, используемую для указания параметров REF CURSOR.

  • Чтобы выполнить хранимую процедуру, возвращающую REF CURSORs, необходимо определить параметры в OracleParameterCollection с типом OracleType и параметр с направлением Direction. Поставщик данных поддерживает привязку REF CURSORs только в качестве выходных параметров. Поставщик не поддерживает REF CURSORs в качестве входных параметров.

  • Получение OracleDataReader из значения параметра не поддерживается. Значения имеют тип DBNull после выполнения команды.

  • Единственное значение перечисления CommandBehavior , которое работает с REF CURSORs (например, при вызове ExecuteReader) — CloseConnection; все остальные игнорируются.

  • Порядок REF CURSORs в OracleDataReader зависит от порядка параметров в OracleParameterCollection. Свойство ParameterName игнорируется.

  • Тип данных PL/SQL TABLE не поддерживается. Тем не менее, REF CURSORs более эффективны. Если необходимо использовать тип данных TABLE , используйте поставщик данных OLE DB .NET с MSDAORA.

В этом разделе

Примеры REF CURSOR
Содержит три примера, демонстрирующие использование REF CURSORs.

Параметры REF CURSOR в OracleDataReader
Демонстрируется выполнение хранимой процедуры PL/SQL, которая возвращает параметр REF CURSOR и считывает значение в виде OracleDataReader.

Получение данных из нескольких REF CURSORs с помощью OracleDataReader
Демонстрируется выполнение хранимой процедуры PL/SQL, которая возвращает два параметра REF CURSOR и считывает значения с помощью OracleDataReader.

Заполнение набора данных с помощью одного или нескольких REF CURSOR
Демонстрирует, как выполнить хранимую процедуру PL/SQL, которая возвращает два параметра REF CURSOR и заполняет DataSet возвращаемыми строками.

См. также