Oracle
 sql >> Database >  >> RDS >> Oracle

Recupera l'immagine da Oracle DB

Non sono sicuro di cosa stia facendo lretorno.Load(...) per leggere i dati, ma questo esempio di codice sudo che utilizza un'istruzione select potrebbe aiutarti ... Ho sempre dovuto ottenere specificamente il blob e leggerlo per recuperare i byte in passato.

Esempio per recuperare un LONG RAW Tipo di dati

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

Esempio per recuperare un BLOB Tipo di dati

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