共用方式為


Oracle REF CURSOR

Oracle 的 .NET Framework 資料提供者支援 Oracle REF CURSOR 資料型別。 透過資料提供者使用 Oracle REF CURSOR 時,您應考量下列行為。

注意

某些行為與 Oracle 的 Microsoft OLE DB 提供者 (MSDAORA) 的行為不同。

  • 基於效能方面的原因,除非您明確指定,否則 Oracle 的資料提供者不會如 MSDAORA 一樣,自動繫結 REF CURSOR 資料類型。

  • 該資料提供者不支援任何 ODBC 逸出序列,包括用來指定 REF CURSOR 參數的 {resultset} 逸出。

  • 若要執行傳回 REF CURSOR 的預存程序,您必須以 Cursor OracleTypeOutput Direction,定義 OracleParameterCollection 中的參數。 資料提供者僅支援將 REF CURSOR 繫結為輸出參數。 提供者不支援 REF CURSOR 做為輸入參數。

  • 不支援從參數值取得 OracleDataReader。 命令執行後,值的型別為 DBNull

  • 例如,可與 REF CURSORs 搭配使用的唯一 CommandBehavior 列舉值 (例如呼叫 ExecuteReader 時) 為 CloseConnection;會忽略所有其他項目。

  • OracleDataReader 中 REF CURSOR 的順序取決於 OracleParameterCollection 中參數的順序。 忽略 ParameterName 屬性。

  • 不支援 PL/SQL TABLE 資料類型。 然而,REF CURSOR 更有效率。 如果您必須使用 TABLE 資料型別,請搭配使用 OLE DB .NET 資料提供者與 MSDAORA。

本節內容

REF CURSOR 範例
包含示範如何使用 REF CURSOR 的三個範例。

OracleDataReader 中的 REF CURSOR 參數
示範如何執行傳回 REF CURSOR 參數的 PL/SQL 預存程序,並以 OracleDataReader 讀取值。

使用 OracleDataReader 從多個 REF CURSOR 擷取資料
示範如何執行傳回兩個 REF CURSOR 參數的 PL/SQL 預存程序,並使用 OracleDataReader 讀取值。

使用一或多個 REF CURSOR 填入資料集
示範如何執行傳回兩個 REF CURSOR 參數的 PL/SQL 預存程序,並使用傳回的資料列填入 DataSet

另請參閱