插入OracleType.Blob会在调用时产生错误'错误的参数数量或类型'

时间:2013-02-14 23:18:49

标签: c# oracle parameters

我不知道为什么我会收到错误

PLS-00306: wrong number or types of arguments in call to 'x'
ORA-06550: line 1, column 7:

我正在使用此代码调用函数

sql = "BEGIN :retval := MYPACKAGE.MYFUNCTION('901','text.pdf', null,:p_fileContentId); end;";

OracleCommand command = new OracleCommand(sql, conn);
command.CommandTimeout = 30;

OracleParameter returnValue = new OracleParameter(":retval", OracleDbType.Decimal);
OracleParameter p_filecontentid = new OracleParameter(":p_filecontent_id", OracleDbType.Decimal);
p_filecontentid.Direction = ParameterDirection.Output;
returnValue.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnValue);
command.Parameters.Add(p_filecontentid);

然后我用executeNonquery();

运行它

实际功能如下所示

FUNCTION myFunction(Filetype            IN  user.FTYPE.FILETYPE%TYPE,
                       Filename            IN  user.FOBJECT.filename%TYPE,
                       Content             IN  user.FONTENT.content%TYPE,                          
                       FileContent_ID      OUT INTEGER)

我知道内容绝对是一个Blob。当我运行上面的查询将内容设置为null时,它可以工作。

我将param设置为:p_content和

command.Parameters.Add(new OracleParameter(":p_content", OracleDbType.Blob, docImage.Length)).Value = docImage;

它给了我上面的错误。我不知道为什么。我之前使用blob运行其他类似的查询没有问题。就是这个。有谁有想法吗??

0 个答案:

没有答案