public static byte[] ExecuteDataReader(string sql, string connStr, params OracleParameter[] parameters) { using (OracleConnection conn = new OracleConnection(connStr)) { conn.Open(); using (OracleCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); OracleDataReader reader = cmd.ExecuteReader(); MemoryStream ms = new MemoryStream(); if (reader.Read()) { OracleBlob blob = (OracleBlob)reader.GetOracleBlob(0); Byte[] buffer = new Byte[blob.Length]; blob.Read(buffer, 0, Convert.ToInt32(blob.Length)); ms.Write(buffer, 0, Convert.ToInt32(blob.Length)); blob.Close(); } reader.Close(); ms.Position = 0; byte[] result = new byte[ms.Length]; ms.Read(result, 0, result.Length); return(result); } } }
private void FreeLob() { if (lob == null) { return; } lob.Close(); lob.Dispose(); lob = null; }