remarks cref c# oracle oracle11g enterprise-library

c# - cref - Obtención de datos LARGOS SIN PROCESAR(Bytes) de EnterpriseLibrary



remarks c# (2)

Intente utilizar OracleDataReader y OracleBlob como tipo de datos:

using (OracleDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { if (!reader.IsDBNull(reader.GetOrdinal("FILE"))) { OracleBlob doc = reader.GetOracleBlob(reader.GetOrdinal("FILE")); if (!doc.IsNull) { docBytes = new byte[doc.Length]; doc.Read(docBytes, 0, (int)doc.Length); } } } }

Tengo un problema para obtener datos de bytes de imagen de Oracle. reader("image") siempre devuelve 0 de longitud. ¿Hay alguna solución? Si utilicé oledb , está funcionando, pero no funciona con Microsoft EnterpriseLibrary .

using (IDataReader reader = ExecuteNonQueryOracle(Query)) { while (reader.Read) { dict("image") = reader("image"); } } public object ExecuteNonQueryOracle(string Query) { using (dbCommand == CurrentDatabase.GetSqlStringCommand(Query)) { dbCommand.CommandType = CommandType.Text; return CurrentDatabase.ExecuteReader(dbCommand); } }


Si el método ExecuteNonQuery está devolviendo 0, entonces una razón podría ser bastante obvia de que la cláusula where de su consulta no concuerda con ninguna fila en la (s) tabla (s).

Tengo este hilo de la web Esto podría ayudar

Otro caso que sucedió conmigo fue cuando estaba usando el bloque Aplicación de datos de la biblioteca Enterprise para ejecutar la consulta Actualizar sql usando el método ExecuteNonQuery, estaba pasando los parámetros de entrada usando el método AddInParameter del objeto Database en orden que no coincidía con el orden de los parámetros en mi actualización sql, especialmente el parámetro de entrada en donde cláusula.Así que una vez que pasé en donde el parámetro cláusula usando AddInParameter al final del grupo de la cláusula AddInParameter, el problema se resolvió de inmediato.