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 回答