REF CURSORs do Oracle

O Provedor de Dados .NET Framework para Oracle dá suporte ao tipo de dados REF CURSOR do Oracle. Ao usar o provedor de dados para trabalhar com REF CURSORs do Oracle, você deve considerar os seguintes comportamentos.

Observação

Alguns comportamentos diferem dos do Provedor OLE DB para Oracle (MSDAORA).

  • Por razões de desempenho, o Provedor de dados para Oracle não associa automaticamente tipos de dados REF CURSOR, como faz o MSDAORA, a menos que você os especifique explicitamente.

  • O provedor de dados não oferece suporte a nenhuma sequência de escape de ODBC, incluindo o escape {resultset} usado para especificar parâmetros de REF CURSOR.

  • Para executar um procedimento armazenado que retorne REF CURSORs, você deve definir os parâmetros no OracleParameterCollection com um OracleType do Cursor e um Direction de Saída. O provedor de dados oferece suporte a REF CURSORs de associação como parâmetros de saída somente. O provedor não oferece suporte a REF CURSORs como parâmetros de entrada.

  • A obtenção de OracleDataReader do valor do parâmetro não é suportada. Os valores são do tipo DBNull após a execução do comando.

  • O único valor de enumeração de CommandBehavior que funciona com REF CURSORs (por exemplo, ao chamar ExecuteReader) é CloseConnection, todos os outros são ignorados.

  • A ordem de REF CURSORs no OracleDataReader depende da ordem dos parâmetros no OracleParameterCollection. A propriedade ParameterName é ignorada.

  • O tipo de dados TABLE de PL/SQL não é suportado. No entanto, REF CURSORs são mais eficientes. Se você precisar usar um tipo de dados TABLE, use o Provedor de Dados .NET do OLE DB com o MSDAORA.

Nesta seção

Exemplos de REF CURSOR
Contém três exemplos que demonstram como usar REF CURSORs.

Parâmetros de REF CURSOR em um OracleDataReader
Demonstra como executar um procedimento armazenado PL/SQL, que retorna um parâmetro de REF CURSOR e lê o valor como um OracleDataReader.

Recuperar dados de vários REF CURSORs usando um OracleDataReader
Demonstra como executar um procedimento armazenado PL/SQL, que retorna dois parâmetros de REF CURSOR e lê os valores usando um OracleDataReader.

Preenchendo um DataSet usando um ou mais REF CURSORs
Demonstra como executar um procedimento armazenado PL/SQL, que retorna dois parâmetros de REF CURSOR e preenche um DataSet com as linhas retornadas.

Confira também