Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Getting Error -3016 from ODP.Net
Terry schreef:
> All:
>
> I'm attempting to write a value into a Blob. The database is Oracle
> 8.0.6, and I've installed the ODAC 9.2.0.7.0. I'm calling this from an
> ASP.Net v1.1 web service.
>
> Here is the table definition:
>
> TABLE_X_ATTACHMENTS_STAGE (
> OBJID NUMBER,
> CASE_ID VARCHAR2 (30) NOT NULL,
> SITE_ID VARCHAR2 (30) NOT NULL,
> FILE_NAME VARCHAR2 (512),
> CONTENTS BLOB
> )
>
> Here's the code:
>
> string sqlAttachmentCmd =
> @"insert into sa.table_x_attachments_stage " +
> "(objid, case_id, site_id, file_name, contents) " +
> "values (3, :case_id, :site_id, :file_name, :contents)" ;
>
> byte [] contentsByteArr =
> Convert.FromBase64String(attachment.contents);
> int retVal = 0;
>
> conn=new OracleConnection(connstr);
>
> conn.Open();
> OracleParameter caseIDParameter = new
> OracleParameter("case_id",caseID);
> OracleParameter siteIDParameter = new
> OracleParameter("site_id",siteID);
> OracleParameter fileNameParameter = new
> OracleParameter("file_name",attachment.fileName);
> OracleParameter blobParameter = new
> OracleParameter("contents",OracleDbType.Blob);
>
> blobParameter.Value = contentsByteArr;
>
> cmnd=new OracleCommand(sqlAttachmentCmd,conn);
>
> cmnd.Parameters.Add(caseIDParameter);
> cmnd.Parameters.Add(siteIDParameter);
> cmnd.Parameters.Add(fileNameParameter);
> cmnd.Parameters.Add(blobParameter);
>
> retVal = cmnd.ExecuteNonQuery();
>
> And here's the exception I'm receiving:
>
> CaseAttachment(): Error
> Number=-3016 => - Oracle Data Provider for .NET
> Oracle.DataAccess.Client.OracleException at
> Oracle.DataAccess.Client.OracleException.GetOpoErr(IntPtr opsErrCtx,
> Int32 arrayBindIndex, String dataSrc, String procedure)
> at Oracle.DataAccess.Client.OracleException.GetOpoErrCtx(IntPtr
> opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, IntPtr opsConCtx, String
> dataSrc, String procedure)
> at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
> errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*
> pOpoSqlValCtx, Object src, String procedure)
> at Oracle.DataAccess.Types.OracleBlob.CreateTempLob()
> at Oracle.DataAccess.Types.OracleBlob.Write(Byte[] buffer, Int32
> offset, Int32 count)
> at
> Oracle.DataAccess.Client.OracleParameter.PreBind_Blob(OracleConnection
> conn)
> at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection
> conn, IntPtr errCtx, Int32 arraySize)
> at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
>
> I'm at a loss as to the cause.
>
> Suggestions?
>
And what do you think the error signifies?
-- Regards, Frank van Bortel Top-posting is one way to shut me up...Received on Sat Nov 04 2006 - 00:28:41 CST