У меня проблемы с получением BLOB-объекта из Oracle БД, я делаю простой C# консольный проект, пробуя примеры упражнений от Google, пытаясь выяснить, в чем проблема. Я делаю заявление выбора для получения данных. Эта программа работает, но если я включаю столбец типа BLOB-объекта («XML_AND_PDF_ZIP»), который является столбцом, который я хочу получить из таблицы, я получаю сообщение об ошибке ORA-03135: Советы при потере соединения при выполнении метода Read () объекта OracleDataReader.
Я использую Oracle .ManagedDataAccess в качестве моего поставщика ODP. NET. * База данных Oracle 10g 10.2 64bit.
Я что-то упустил, прежде чем метод ExecuteReader () нажал ??
private static string GetConnectionString(string _connectionID)
{
return ConfigurationManager.ConnectionStrings[_connectionID].ConnectionString;
}
public static List<CF2> GetOraBlob(string sFolio)
{
try
{
List<CF2> result = new List<CF2>();
using (OracleConnection conn = new OracleConnection(GetConnectionString(connectionID)))
{
using (OracleCommand cmd = conn.CreateCommand())
{
cmd.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 the Blob Column
cmd.Parameters.Add("pCOMPANY_EMPID_FOLIO", OracleDbType.Varchar2, 15).Value = sFolio;
cmd.CommandType = CommandType.Text;
cmd.BindByName = true;
conn.Open();
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read()) //Get ORA-03135 Error If the Blob Column is in the Select Statement
{
CF2 data = new CF2();
data.Folio = reader["COMPANY_EMPID_FOLIO"].ToString();
data.OraBlob = Convert.ToByte(reader["XML_AND_PDF_ZIP"]);
result.Add(data);
}
}
}
}
return result;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}