挿入や更新などを処理するために、自動生成されたデータアクセスクラスがいくつかあります。
これらは次のようになります。
cmd.CommandType = CommandType.Text
cmd.CommandText = "UPDATE myTable set f1 = :f1, f2 = :f2, f3 = :f3 where id = :id"
cmd.Parameters.AddWithValue(":f1", _f1)
cmd.Parameters.AddWithValue(":f2", _f2)
cmd.Parameters.AddWithValue(":f3", _f3)
cmd.ExecuteNonQuery()
私がやりたいことをするためにSQLを書き直すとしたら、それは次のようになります
cmd.CommandText = "UPDATE myTable set f1 = pkg.getMyValue, f2 = :f2, f3 = :f3 where id = :id"
更新SQLやパラメータの設定方法を変更せずに、_f1を「特別な」値に設定することでこれを行う方法はありますか? 特定の場合にのみ、f1 の値を設定する必要があります。ほとんどの場合、値は null になります。
Oracle 11 に対して .net 2.0 と system.data.oracleclient を使用します。