1

SYS_REFCUROR 型の OUT パラメータを持つストアド プロシージャがあります。プロシージャを実行する前に C# から、その OUT パラメータを除くすべてのパラメータを追加します。しかし、プロシージャを実行すると、「引数の数またはタイプが間違っています」というエラーが表示されます。私の質問は、そのパラメーターに値を割り当てない場合、なぜそれをパラメーター コレクションに追加する必要があるのですか?

4

1 に答える 1

1

ストアドプロシージャの実行後、sqlのoutパラメータの値は、コードで指定したこのoutパラメータに格納され、後で実行するときに使用できるため、パラメータを追加する必要があります。

パラメータの受け渡しを省略したい場合は、出力パラメータにデフォルト値を割り当ててください。これで問題が解決します。

例えば ​​:

CREATE PROCEDURE MyTest
   @Data1 int
   ,@Data3 int = null output 

上記のようにすると、出力パラメーターをコードで渡す必要がなくなり、発生しているエラーが非表示になります。

于 2012-05-04T06:15:12.977 に答える