SQL Developer で動作する小さな更新クエリがあります。
UPDATE people
SET months = 8
WHERE number = 599
かなり簡単です。そしてそれは機能します - これは C# でも機能します。問題は、パラメーターを使用したい瞬間です(これは数では機能しますが、月では機能しません)、機能しなくなります。
私はC#でこのコードを持っています:
using (OracleConnection con = new OracleConnection(connectionString))
{
con.Open();
OracleCommand command = con.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "UPDATE people " +
"SET months = :months " +
"WHERE number = :number";
command.Parameters.Add(":number", OracleDbType.Int32).Value = number;
command.Parameters.Add(":months", OracleDbType.Int32).Value = months;
command.ExecuteNonQuery();
}
どちらもオラクルの Number 型であり、OracleDbType を Decimal に変更しようとしましたが、ほとんどすべてが成功しませんでした。奇妙なことに、:number パラメータは機能しますが、月は更新されません (クラッシュすることはなく、更新されないだけです)。ただし、:months パラメータを 7 などの静的な値に変更すると、機能します。