1 または 0 を返すストアド プロシージャがあります。この値は、それを呼び出す .net 関数に戻す必要があります。Oracle からデータ セットを取得する方法 (refCursor を使用)、Oracle にデータを入力する方法、cmd.ExecuteNonQuery() を呼び出す方法を知っています (ストアド プロシージャを使用してデータを入力すると仮定) しかし、ストアド プロシージャの単一の戻り値を取得するにはどうすればよいでしょうか。私はデータセットを返すのではなく、1 または 0 を返します。したがって、これは少し異なります。
ありがとう。
更新: CODE TO より具体的にどこが間違っているかを示しますか?
try
{
using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ACODBConnectionString3"].ConnectionString))
{
using (OracleCommand cmd = new OracleCommand(sProc,conn))
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter inputParm = new OracleParameter("HospitalFinIn", OracleDbType.Varchar2);
inputParm.Value = HosFin;
//inputParm3.Value = Double.Parse(isActive);
OracleParameter outRefParam = new OracleParameter("cur_out", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
//outRefParam.
cmd.Parameters.Add(inputParm);
cmd.Parameters.Add(outRefParam);
outcome = (int)cmd.ExecuteScalar();
if (outcome == 1)
FinUniq = false;
else if (outcome == 0)
FinUniq = true;
else
FinUniq = true;
//outcome = cmd.ExecuteNonQuery();
//adapter = new OracleDataAdapter(cmd);
//adapter.Fill(ds);
}
}
}
これは、これを実行したときに発生する例外です
Specified cast is not valid.
何が間違っているのかわかりません。ストアド プロシージャは確実に 0 または 1 を返します。