Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Getting Error -3016 from ODP.Net

Getting Error -3016 from ODP.Net

From: Terry <terrence.beard_at_globalcrossing.com>
Date: 3 Nov 2006 08:16:27 -0800
Message-ID: <1162570586.920137.96070@i42g2000cwa.googlegroups.com>


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? Received on Fri Nov 03 2006 - 10:16:27 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US