C#/Oracleの出力パラメータに問題があります。動作させるために必要なコードを分離しました。
これははるかに大きなSQLステートメントの一部であるため、意味がない場合でもあまり心配する必要はありません。つまり、行をコピーして新しいIDを指定し、その新しいIDを返す必要があります。動かなかった「RETURNING」を使ってみました。以下のコードが機能しない理由はわかりませんが、「ORA-01036:不正な変数名/番号」エラーが発生します。誰かが私が間違っていることを見ることができますか?
using (OracleConnection conn = new OracleConnection(connString))
{
// Open connection and create command.
conn.Open();
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("outValue", OracleType.Int32).Direction = ParameterDirection.Output;
cmd.CommandText = "SELECT seq.nextval INTO :outValue FROM dual";
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
// This is just to see the exception when it fails.
}
}
}