SYS_REFCUROR 型の OUT パラメータを持つストアド プロシージャがあります。プロシージャを実行する前に C# から、その OUT パラメータを除くすべてのパラメータを追加します。しかし、プロシージャを実行すると、「引数の数またはタイプが間違っています」というエラーが表示されます。私の質問は、そのパラメーターに値を割り当てない場合、なぜそれをパラメーター コレクションに追加する必要があるのですか?
質問する
656 次
1 に答える
1
ストアドプロシージャの実行後、sqlのoutパラメータの値は、コードで指定したこのoutパラメータに格納され、後で実行するときに使用できるため、パラメータを追加する必要があります。
パラメータの受け渡しを省略したい場合は、出力パラメータにデフォルト値を割り当ててください。これで問題が解決します。
例えば :
CREATE PROCEDURE MyTest
@Data1 int
,@Data3 int = null output
上記のようにすると、出力パラメーターをコードで渡す必要がなくなり、発生しているエラーが非表示になります。
于 2012-05-04T06:15:12.977 に答える