Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Getting Error -3016 from ODP.Net
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),
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
![]() |
![]() |