2

ストアドプロシージャを実行するために OracleParameter にすべてのフィールド値を設定しないことの結果を知っている人はいますか?

たとえば、OracleDbTypeEx、Size を提供する必要がありますか?

私は単に名前、値、inOrOut を提供しますか?

どう思いますか?

ありがとうございました。

4

1 に答える 1

1

入力パラメーターの場合、値が指定されていない場合、型は値から推測されます。つまり、コードの簡潔さと保守性のために、これらのプロパティを入力に設定しない傾向があります.SqlCommandクラスにあるAddWithValueメソッドと同様のメソッドでParameters.Addメソッドを使用します:cmd.Parameters.Add( "myvarname"、varvalue)。

一方、長さは動作を変更します。IIRC、長さを指定しない場合、値の長さがパラメーターの長さを超えると、オーバーフロー例外の形式が発生します。長さを設定すると、少なくとも String/Varchar の場合、入力はその長さにトリミングされます。私は長さを設定することを避ける傾向があります。なぜなら、私は切り捨てのアラートを受け取り、代わりにフロントエンドでの入力を制限したいからです。

出力パラメーターは別の話です。出力変数の型や長さを設定しないと「文字列バッファが小さすぎる」「不正な変数名・番号」になりやすいので、出力パラメータにこれらのプロパティを設定する必要がある場合がほとんどです。

于 2013-01-24T13:43:34.347 に答える