我有一个存储过程,其OUT参数类型为SYS_REFCUROR。在执行过程之前从C#添加除OUT参数之外的所有参数。但是当我执行该过程时,我得到“错误的数字或类型的参数”错误。我的问题是,如果我不打算为该参数赋值,为什么我必须将它添加到我的参数集合中呢?
答案 0 :(得分:1)
您需要添加参数,因为在执行存储过程之后,sql的out参数值存储在您在代码中提供的out参数中,稍后您可以在进一步执行时使用该参数。
如果您想省略传递参数,请为输出参数指定一个默认值,以解决您的问题。
例如:
CREATE PROCEDURE MyTest
@Data1 int
,@Data3 int = null output
如果你这样做,那么你不需要通过代码传递输出参数,它将隐藏你得到的错误。