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.