首页 > 解决方案 > OracleDataReader Exception when Select a Blob type Column

问题描述

I'm attempting to retrieve an EmptyBLOB from an Oracle database to next write a byte array on that column but I keep getting an Exception Message "ORA-03135: Connection lost contact" in the oracle Data Reader when ExecuteReader. If I select any other column of the table in the statement it works fine. The oracle database is 10g 10.2.0.4.0 - 64bit and I'm using the Oracle.ManagedDataAccess as ODP for .NET

oracleConnection.Open();
OracleCommand nameFile = oracleConnection.CreateCommand();
nameFile.Connection = oracleConnection;
nameFile.Transaction = nameFile.Connection.BeginTransaction();
nameFile.CommandText = "Delete from CF2 WHERE COMPANY_EMPID_FOLIO = :pCOMPANY_EMPID_FOLIO";
nameFile.Parameters.Add("pCOMPANY_EMPID_FOLIO", OracleDbType.Varchar2, 15).Value = sFolio;
nameFile.ExecuteNonQuery();
nameFile.CommandText = "insert into CF2 (COMPANY_EMPID_FOLIO, XML_AND_PDF_ZIP, CREATED_DATE, CREATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_BY) values(:pCOMPANY_EMPID_FOLIO,EMPTY_BLOB(), sysdate, :pUser, sysdate, :pUser)";
nameFile.Parameters.Add("pUser", OracleDbType.Varchar2, 10).Value = sUser;
nameFile.ExecuteNonQuery();
nameFile.Parameters.Clear();

nameFile.CommandText = "SELECT COMPANY_EMPID_FOLIO, XML_AND_PDF_ZIP FROM CF2 WHERE COMPANY_EMPID_FOLIO = :pCOMPANY_EMPID_FOLIO FOR UPDATE"; // XML_AND_PDF_ZIP is BLOP Type Column
nameFile.Parameters.Add("pCOMPANY_EMPID_FOLIO", OracleDbType.Varchar2, 15).Value = sFolio;
OracleDataReader oracleDataReader = nameFile.ExecuteReader(); //DB Lost Contact in this point if a include the blop column in the Select
OracleDataReader oracleDataReader1 = oracleDataReader;

try
{
    oracleDataReader.Read();
    OracleLob oracleLob = oracleDataReader.GetOracleLob(1);
    oracleLob.Write(bytes, 0, (int)bytes.Length);
}
finally
{
    if (oracleDataReader1 != null)
    {
        ((IDisposable)oracleDataReader1).Dispose();
    }
}

Is there something else I'm missing before the .read method ?

标签: c#.netoracleoracle10godp.net

解决方案


推荐阅读