私は、C# からの Oracle へのアクセスに初めて取り組んでいます。私は、Oracle が(C#)VarChar
の値を持つパラメーターを好まないことを発見しました。null
暗黙の変換があることを望んでいましたが、その違いに感謝しています。
したがって、これらの null 値をトラップしてDBNull.Value
代わりに供給する必要がありますか? 最も明白な方法は、合体演算子を使用することでした??
:
param myParm = myObject.MyProperty ?? DBNull.Value;
System.DBNull
...の値を受け入れないことを除いて、次を使用する必要があります。
param myParm = myObject.MyProperty ?? DBNull.Value.ToString();
...これは確かに次と同じです:
param myParm = myObject.MyProperty ?? String.Empty;
..これも機能します。
しかし、ANSI SQL 規則によれば、空の文字列 ("") != NULL 値であることは常に理解していましたが、Oracle にはあるようです。
とにかく、私の質問は、null 文字列値のケースを処理するための、実用的または理論的な最善の方法は何ですか? 私が特定していない巧妙な代替手段はありますか? それとも、これは私たちが受け入れているオラクルの別の特異性ですか?