C# - 我必须将参数添加到参数集合中

时间:2012-05-04 06:12:50

标签: c# oracle parameters out

我有一个存储过程,其OUT参数类型为SYS_REFCUROR。在执行过程之前从C#添加除OUT参数之外的所有参数。但是当我执行该过程时,我得到“错误的数字或类型的参数”错误。我的问题是,如果我不打算为该参数赋值,为什么我必须将它添加到我的参数集合中呢?

1 个答案:

答案 0 :(得分:1)

您需要添加参数,因为在执行存储过程之后,sql的out参数值存储在您在代码中提供的out参数中,稍后您可以在进一步执行时使用该参数。

如果您想省略传递参数,请为输出参数指定一个默认值,以解决您的问题。

例如:

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

如果你这样做,那么你不需要通过代码传递输出参数,它将隐藏你得到的错误。