我不知道为什么我会收到错误
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运行其他类似的查询没有问题。就是这个。有谁有想法吗??