OracleLob OutOfMemory exception
Posted: Thu 08 Sep 2011 11:34
Hi,
I want put to oracle large blob, when blob size goes over 300Mb i'm getting OutOfMemory exception.
Is there any workaround to put larger blobs?
Code:
FileStream str = new FileStream(ofDlg.FileName, FileMode.Open);
con.Open();
OracleLob myLob = new OracleLob(con, OracleDbType.Blob);
byte[] buffer = new byte[32768];
int read;
while ((read = str.Read(buffer, 0, buffer.Length)) > 0)
{
myLob.Write(buffer, 0, read); //OutOfMemory exception after ~300MB
}
str.Close();
OracleCommand myCommand = new OracleCommand(
"UPDATE BLOB_TABLE FDATA = :blobz WHERE AID = " + aid.Text, con);
OracleParameter myParam = myCommand.Parameters.Add("blobz", OracleDbType.Blob);
myParam.OracleValue = myLob;
try
{
myCommand.ExecuteNonQuery();
}
catch (OracleException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
I want put to oracle large blob, when blob size goes over 300Mb i'm getting OutOfMemory exception.
Is there any workaround to put larger blobs?
Code:
FileStream str = new FileStream(ofDlg.FileName, FileMode.Open);
con.Open();
OracleLob myLob = new OracleLob(con, OracleDbType.Blob);
byte[] buffer = new byte[32768];
int read;
while ((read = str.Read(buffer, 0, buffer.Length)) > 0)
{
myLob.Write(buffer, 0, read); //OutOfMemory exception after ~300MB
}
str.Close();
OracleCommand myCommand = new OracleCommand(
"UPDATE BLOB_TABLE FDATA = :blobz WHERE AID = " + aid.Text, con);
OracleParameter myParam = myCommand.Parameters.Add("blobz", OracleDbType.Blob);
myParam.OracleValue = myLob;
try
{
myCommand.ExecuteNonQuery();
}
catch (OracleException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}