Tôi không chắc lretorno.Load (...) đang làm gì để đọc dữ liệu, nhưng mẫu mã sudo này sử dụng câu lệnh select có thể giúp bạn ... Tôi luôn phải lấy blob cụ thể và đọc nó ra. để lấy các byte trong quá khứ.
Ví dụ để truy xuất NGUYÊN LIỆU DÀI DataType
var imgCmd = new OracleCommand("SELECT photo FROM photos WHERE photo_id = 1", _con);
imgCmd.InitialLONGFetchSize = -1; // Retrieve the entire image during select instead of possible two round trips to DB
var reader = imgCmd.ExecuteReader();
if (reader.Read()) {
// Fetch the LONG RAW
OracleBinary imgBinary = reader.GetOracleBinary(0);
// Get the bytes from the binary obj
byte[] imgBytes = imgBinary.IsNull ? null : imgBinary.Value;
}
reader.Close();
Ví dụ để truy xuất BLOB DataType
var imgCmd = new OracleCommand("SELECT photo FROM photos WHERE photo_id = 1", _con);
var reader = imgCmd.ExecuteReader();
if (reader.Read()) {
// Fetch the blob
OracleBlob imgBlob = reader.GetOracleBlob(0);
// Create byte array to read the blob into
byte[] imgBytes = new byte[imgBlob.Length];
// Read the blob into the byte array
imgBlob.Read(imgBytes, 0, imgBlob.Length);
}
reader.Close();