Курсоры REF CURSOR в Oracle
Поставщик данных .NET Framework для Oracle поддерживает тип данных REF CURSOR Oracle. При использовании поставщика данных для работы с данными типа REF CURSOR Oracle необходимо учитывать следующие особенности его функционирования.
Примечание |
---|
По некоторым особенностям функционирования он отличается от поставщика Microsoft OLE DB для Oracle (MSDAORA). |
В целях повышения производительности поставщик данных для Oracle, в отличие от MSDAORA, не выполняет автоматически привязку типов данных REF CURSOR, если это не задано явно.
Указанный поставщик данных не поддерживает никаких escape-последовательностей ODBC, включая escape-последовательность {resultset}, используемую для задания параметров REF CURSOR.
Чтобы выполнить хранимую процедуру, которая возвращает данные типа REF CURSOR, необходимо определить параметры в OracleParameterCollection с помощью свойства OracleType объекта Cursor и свойства Direction объекта Output. Этот поставщик данных поддерживает связывание данных типа REF CURSOR только в качестве выходных параметров. Этот поставщик не поддерживает данные типа REF CURSOR как входные параметры.
Получение модуля OracleDataReader из значения параметра не поддерживается. Значения имеют тип DBNull после выполнения команды.
Единственным значением перечисления CommandBehavior, которое может применяться для работы с данными типа REF CURSOR (например, при вызове ExecuteReader), является CloseConnection; все прочие значения не учитываются.
Последовательность расположения данных типа REF CURSOR в объекте OracleDataReader зависит от последовательности параметров в коллекции OracleParameterCollection. Свойство ParameterName не учитывается.
Тип данных TABLE языка PL/SQL не поддерживается. Но данные типа REF CURSOR являются более эффективными. Если возникает необходимость в использовании типа данных TABLE, используйте поставщика данных OLE DB .NET с MSDAORA.
В этом подразделе
Примеры курсоров REF CURSOR
Содержит три примера, которые демонстрируют использование данных типа REF CURSOR.Параметры REF CURSOR в OracleDataReader
Показывает, как выполнить хранимую процедуру PL/SQL, которая возвращает параметр REF CURSOR и считывает значение как OracleDataReader.Извлечение данных из нескольких курсоров REF CURSOR с помощью OracleDataReader
Показывает, как выполнить хранимую процедуру PL/SQL, которая возвращает два параметра REF CURSOR и считывает значения с использованием OracleDataReader.Заполнение DataSet с помощью одного или нескольких курсоров REF CURSOR
Показывает, как выполнить хранимую процедуру PL/SQL, которая возвращает два параметра REF CURSOR и заполняет DataSet возвращаемыми строками.