Oracle
 sql >> Base de données >  >> RDS >> Oracle

Récupérer l'image de la base de données Oracle

Je ne sais pas ce que fait lretorno.Load(...) pour lire les données, mais cet exemple de code sudo utilisant une instruction select pourrait vous aider... J'ai toujours dû obtenir spécifiquement le blob et le lire pour obtenir les octets dans le passé.

Exemple pour récupérer un LONG RAW Type de données

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();

Exemple de récupération d'un BLOB Type de données

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();