C#の出力パラメータとしてvarchar2(4000)
のOracle表を取得する際に助けが必要です。C#のストアド・プロシージャ出力からTABLE OF VARCHAR2(4000)を取得しています
私はこれは、ストアド・プロシージャています
Type TTABSelectResult IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
PROCEDURE FOO_Procedure(i_nIndex IN NUMBER,
i_nAnzahl IN NUMBER,
o_tabSelectResult OUT TTABSelectResult);
そして、これは私が試したコードのようになります。
using (var cmd = new OracleCommand
{
Connection = Conn,
CommandType = CommandType.StoredProcedure,
CommandText = "FOO_Package.FOO_Procedure",
BindByName = true
})
{
cmd.Parameters.Add(new OracleParameter("i_Index", index));
cmd.Parameters.Add(new OracleParameter("i_Cnt", maxCnt));
cmd.Parameters.Add("o_tabSelectResult", ???).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
var obj = (???)cmd.Parameters["o_tabSelectResult"].Value;
}
あなたは親切に私が使用する必要がどの種類を教えてもらえますか? OracleDbType
はstring[]
のようなものをサポートしていないためです。
PS:詳細については編集しました。
PPS: o_tabSelectResultテーブルからデータを取得する可能性を探します。
戻り値が必要な場合は、executenonqueryが間違った答えになります。削除/挿入/更新の詳細はこちらをご覧ください。 – BugFinder
可能な[dupe](https://stackoverflow.com/q/1728525/15498)? –
あなたの入力に感謝し、私はより多くの情報を追加しましたが、現時点でこれを解決できませんでした。 – Malloc