1

私のデータベースには、SYS_REFCURSORタイプのOUTPUTパラメータを持つストアドプロシージャがあります。アプリケーション側はC#で記述されています。このプロシージャの出力パラメータを次のようなDatatableに割り当てることはできますか?

 .............
 OracleConnection con=new OracleConnection(......);
 OracleCommand cmd=new OracleCommand("MyStoredProc",con);
 cmd.CommandType=CommandType.StoredProcedure;
 cmd.Parameters.Add("REC_CUR",OracleType.Cursor).Direction=ParameterDirection.Output;
 con.Open();
 cmd.ExecuteNonQuery();
 DataTable dt=(DataTable)cmd.Parameters["REC_CUR"].value;//is this legal?
4

2 に答える 2

2

これが私自身の質問に対する答えです。ストアド プロシージャの出力パラメータが SYS_REFCURSOR 型の場合、コマンドは

cmd.Parameters["REC_CUR"].value

テーブルではなく、OracleDataReader オブジェクトを返します。また、OracledataReader から DataTable への暗黙的なキャストも明示的なキャストもありません。

于 2011-10-14T07:02:41.137 に答える