Sorry if I am stupid...
blob.
> The data type specified on the OracleParameter is incorrect.
>
> --
>
> - Sahil Malik [MVP]
> ADO.NET 2.0 book -
>
http://codebetter.com/blogs/sahil.malik/archive/2005/05/13/63199.aspx
> -------------------------------------------------------------------------=
---
> ---------------
>
> "Jonaze" <joel.naze@aemc.net> wrote in message
> news:1127303163.534208.289750@f14g2000cwb.googlegroups.com...
> > I have a function with the following code, I have written this function
> > with the example provided in the documentation provided with
> > OracleClient.
> >
> > The called stored procedure functions perfectly, I have tested it
> > manually with success, but when I try to use the function, I get the
> > error "Object must implement IConvertible".
> >
> > I also tested with the code in comment, without success and the same
> > result. If anyone has an idea...
> >
> > int fileLength =3D Convert.ToInt32(_BinaryFile.Length);
> > byte[] fileBinary =3D new byte[fileLength];
> >
> > int status =3D _BinaryFile.Read(fileBinary, 0, fileLength);
> >
> > _BinaryFile.Close();
> >
> > OracleConnection oc =3D new
> > OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
> >
> > oc.Open();
> > OracleTransaction tx =3D oc.BeginTransaction();
> > OracleCommand ocm =3D oc.CreateCommand ();
> > ocm.Transaction =3D tx;
> > /*
> >
> > ocm.CommandText =3D "declare xx blob; begin dbms_lob.createtemporary(xx,
> > false, 0); :tempblob :=3D xx; end;";
> > ocm.Parameters.Add(new OracleParameter("tempblob",
> > OracleType.Blob)).Direction =3D ParameterDirection.Output;
> > ocm.ExecuteNonQuery();
> >
> > OracleLob ol =3D (OracleLob)ocm.Parameters[0].Value;
> >
> > ol.BeginBatch(OracleLobOpenMode.ReadWrite);
> > ol.Write(fileBinary, 0, fileLength);
> > ol.EndBatch();
> > */
> > ocm.Parameters.Clear();
> >
> > ocm.CommandText =3D PUT_FILE; //Constant
> > ocm.CommandType =3D CommandType.StoredProcedure;
> >
> > ocm.Parameters.Add( new OracleParameter("PROCESS_ID",
> > OracleType.VarChar, 36)).Value =3D _ProcessID;
> > ocm.Parameters.Add( new OracleParameter("NSB", OracleType.VarChar,
> > 15)).Value =3D _NSB;
> > ocm.Parameters.Add( new OracleParameter("GENERATION_DATE",
> > OracleType.DateTime)).Value =3D _Date;
> > if (_AllPublication)
> > ocm.Parameters.Add( new OracleParameter("ALLPUBLICATION",
> > OracleType.Number)).Value =3D 1;
> > else
> > ocm.Parameters.Add( new OracleParameter("ALLPUBLICATION",
> > OracleType.Number)).Value =3D 0;
> > ocm.Parameters.Add( new OracleParameter("FILTERED",
> > OracleType.Number)).Value =3D _Filtered;
> > ocm.Parameters.Add( new OracleParameter("DATE_FROM",
> > OracleType.DateTime)).Value =3D _DateFrom;
> > ocm.Parameters.Add( new OracleParameter("DATE_TO",
> > OracleType.DateTime)).Value =3D _DateTo;
> > ocm.Parameters.Add( new OracleParameter("FILE_FORMAT",
> > OracleType.VarChar, 3)).Value =3D _Format;
> > ocm.Parameters.Add( new OracleParameter("PATH", OracleType.VarChar,
> > 500)).Value =3D _Path;
> > ocm.Parameters.Add( new OracleParameter("FILE_NAME",
> > OracleType.VarChar, 500)).Value =3D _FileName;
> > ocm.Parameters.Add( new OracleParameter("FILE_BINARY",
> > OracleType.Blob)).Value =3D fileBinary;
> > //ocm.Parameters.Add( new OracleParameter("FILE_BINARY",
> > OracleType.Blob)).Value =3D ol;
> > ocm.Parameters.Add( new OracleParameter("p_err",
> > OracleType.Number)).Direction =3D ParameterDirection.Output;
> >
> > ocm.ExecuteNonQuery();
> >
> > tx.Commit();
> >
> > oc.Close();
> >