Oracle-REF CURSORs

Der .NET Framework-Datenanbieter für Oracle unterstützt den Oracle-Datentyp REF CURSOR. Wenn Sie beim Arbeiten mit Oracle-REF CUSORS diesen Datenanbieter verwenden, müssen Sie das jeweilige Verhalten berücksichtigen.

Hinweis

Das jeweilige Verhalten weicht von dem des Microsoft OLE DB-Anbieters für Oracle (MSDAORA) ab.

  • Aus Leistungsgründen bindet der Datenanbieter für Oracle, im Gegensatz zu MSDAORA, REF CURSOR-Datentypen nur dann automatisch, wenn Sie sie explizit angeben.

  • Der Datenanbieter unterstützt keine ODBC-Escapesequenzen, auch nicht das {resultset}-Escapezeichen für die Angabe von REF CURSOR-Parametern.

  • Wenn eine gespeicherte Prozedur ausgeführt werden soll, die REF CURSORs zurückgibt, müssen Sie die Parameter in der OracleParameterCollection mit einem auf Cursor festgelegten OracleType und einer auf Output festgelegten Direction definieren. Mit diesem Datenanbieter können REF CURSORs nur als Ausgabeparameter gebunden werden. Das Binden von REF CURSORs als Eingabeparameter wird von diesem Datenanbieter nicht unterstützt.

  • Das Abrufen eines OracleDataReader aus dem Parameterwert wird nicht unterstützt. Nach dem Ausführen des Befehls weisen die Werte den Typ DBNull auf.

  • Der einzige CommandBehavior-Enumerationswert, der mit REF CURSORs verwendet werden kann (z. B. beim Aufrufen von ExecuteReader), ist CloseConnection. Alle anderen Werte werden ignoriert.

  • Die Reihenfolge der REF CURSORs im OracleDataReader richtet sich nach der Reihenfolge der Parameter in der OracleParameterCollection. Die ParameterName-Eigenschaft wird ignoriert.

  • Der PL/SQL-Datentyp TABLE wird nicht unterstützt. REF CURSORs sind im Vergleich effizienter. Wenn Sie dennoch einen TABLE-Datentyp verwenden müssen, verwenden Sie den .NET-Datenanbieter für OLE DB mit MSDAORA.

In diesem Abschnitt

REF CURSOR-Beispiele
Enthält drei Beispiele, in denen die Verwendung von REF CURSORs veranschaulicht wird.

REF CURSOR-Parameter in "OracleDataReader"
Veranschaulicht das Ausführen einer gespeicherten PL/SQL-Prozedur, die einen REF CURSOR-Parameter zurückgibt. Der Wert wird als OracleDataReader gelesen.

Abrufen von Daten aus mehreren REF CURSORs mithilfe von "OracleDataReader"
Veranschaulicht das Ausführen einer gespeicherten PL/SQL-Prozedur, die zwei REF CURSOR-Parameter zurückgibt. Der Wert wird mithilfe eines OracleDataReader gelesen.

Auffüllen eines "DataSets" mit einem oder mehreren REF CURSORs
Veranschaulicht das Ausführen einer gespeicherten PL/SQL-Prozedur, die zwei REF CURSOR-Parameter zurückgibt. Das DataSet wird mit den zurückgegebenen Zeilen aufgefüllt.

Siehe auch