0

我目前正在将 3 个值传递到我的存储过程中以使其运行。但是我的存储过程包含 5 个参数。只是想知道我是否需要传递所有 5 个值才能使其工作或 3 个可以工作?

我也面临这个问题在此处输入图像描述

想知道这个错误是否是由我将 NULL 值传递到我的存储过程引起的?提前致谢。

编辑

以下是我的存储过程中要求的定义:

create or replace procedure upd_pre_proc_card
(prodOrderNo in varchar2,
userId      in varchar2,
poDate      in varchar2, /* poDate = 'yyyy-mm-dd' */
orderType   in varchar2,
printOption in number)
4

2 回答 2

0

在您的场景(您提供的存储过程)中,是的,您需要提供所有参数。我相信在 Oracle 中,您可以指定参数的默认值,例如:

create or replace procedure upd_pre_proc_card
(prodOrderNo in varchar2,
userId      in varchar2,
poDate      in varchar2 default null, /* is optional now */
orderType   in varchar2,
printOption in number)
于 2013-07-21T07:59:56.477 回答
0

这可能是因为空值或空值被错误地传递到存储过程中,您应该如何在将每个值分配给参数之前检查每个值。

if (String.IsNullOrWhiteSpace(orderType))
{
   Parameters.Add([AddYourValuesHere).Value = DBNull.Value;
}
else
{
   Parameters.Add([AddYourValuesHere]).Value = orderType;
}
于 2013-07-21T08:01:42.537 回答