Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase OracleBFile

 

Publicado: noviembre de 2016

Representa un administrado OracleBFile objeto diseñado para trabajar con Oracle BFILE tipo de datos. Esta clase no puede heredarse.

Espacio de nombres:   System.Data.OracleClient
Ensamblado:  System.Data.OracleClient (en System.Data.OracleClient.dll)

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.Data.OracleClient.OracleBFile

public sealed class OracleBFile : Stream, ICloneable, INullable, 
	IDisposable

NombreDescripción
System_CAPS_pubpropertyCanRead

Obtiene un valor que indica si el BFILE se puede leer la secuencia.(Invalida Stream.CanRead).

System_CAPS_pubpropertyCanSeek

Obtiene un valor que indica de búsqueda directa y operaciones de búsqueda hacia atrás de si se pueden realizar.(Invalida Stream.CanSeek).

System_CAPS_pubpropertyCanTimeout

Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual.(Heredado de Stream).

System_CAPS_pubpropertyCanWrite

Obtiene un valor que indica si el objeto admite escritura.(Invalida Stream.CanWrite).

System_CAPS_pubpropertyConnection

Obtiene el OracleConnection utilizado por esta instancia de la OracleBFile.

System_CAPS_pubpropertyDirectoryName

Obtiene el nombre del objeto de directorio, con la que un OracleBFile objeto está asociado.

System_CAPS_pubpropertyFileExists

Obtiene un valor que indica si un archivo físico que contiene BFILE datos existen en el sistema operativo.

System_CAPS_pubpropertyFileName

Obtiene el nombre de la BFILE sin la ruta de acceso.

System_CAPS_pubpropertyIsNull

Obtiene un valor que indica si la OracleBFile es un Null secuencia.

System_CAPS_pubpropertyLength

Obtiene un valor que devuelve la longitud en bytes del archivo físico con el que el OracleBFile objeto está asociado.(Invalida Stream.Length).

System_CAPS_pubpropertyPosition

Obtiene la actual posición de lectura en el OracleBFile secuencia.(Invalida Stream.Position).

System_CAPS_pubpropertyReadTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de lectura antes de que se agote el tiempo de espera.(Heredado de Stream).

System_CAPS_pubpropertyValue

Obtiene un Array del tipo Byte que contiene el OracleBFile datos.

System_CAPS_pubpropertyWriteTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de escritura antes de que se agote el tiempo de espera.(Heredado de Stream).

NombreDescripción
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de lectura asincrónica. (Utilice ReadAsync en su lugar; vea la sección Comentarios).(Heredado de Stream).

System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).(Heredado de Stream).

System_CAPS_pubmethodClone()

Crea una copia de este OracleBFile objeto asociado al mismo archivo físico que el original.

System_CAPS_pubmethodClose()

Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a esta. En lugar de llamar a este método, asegúrese de que la secuencia se desecha correctamente.(Heredado de Stream).

System_CAPS_pubmethodCopyTo(Int64, OracleLob, Int64, Int64)

Copias de esta OracleBFile a un destino OracleLob con la cantidad de datos, el desplazamiento de origen y el desplazamiento de destino especificada.

System_CAPS_pubmethodCopyTo(OracleLob)

Copia todo el contenido de este OracleBFile al principio de un destino OracleLob.

System_CAPS_pubmethodCopyTo(OracleLob, Int64)

Copia todo el contenido de este OracleBFile a un destino OracleLob en el desplazamiento especificado.

System_CAPS_pubmethodCopyTo(Stream)

Cierra la secuencia actual y libera todos los recursos (tales como sockets y manejadores de archivo)asociados a la secuencia actual. (Heredado de Stream).

System_CAPS_pubmethodCopyTo(Stream, Int32)

En vez de llamar a este método, asegúrese de que la secuencia actual ha sido correctamente liberada. (Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.(Heredado de Stream).

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Stream.(Heredado de Stream).

System_CAPS_pubmethodEndRead(IAsyncResult)

Espera a que se complete la lectura asincrónica que se encuentra pendiente. (Utilice ReadAsync en su lugar; vea la sección Comentarios).(Heredado de Stream).

System_CAPS_pubmethodEndWrite(IAsyncResult)

Finaliza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).(Heredado de Stream).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodFlush()

No se admite actualmente.(Invalida Stream.Flush()).

System_CAPS_pubmethodFlushAsync()

Borra asincrónicamente todos los búferes de esta secuencia y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.(Heredado de Stream).

System_CAPS_pubmethodFlushAsync(CancellationToken)

Borra asincrónicamente todos los búferes del flujo actual, hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente y supervisa las solicitudes de cancelación.(Heredado de Stream).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Lee una secuencia de bytes del actual OracleBFile secuencia y hace avanzar la posición dentro de la secuencia por el número de bytes de lectura.(Invalida Stream.Read(Byte[], Int32, Int32)).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Lee asincrónicamente una secuencia de bytes de la secuencia actual y avanza la posición en esta secuencia según el número de bytes leídos.(Heredado de Stream).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición dentro de la secuencia el número de bytes leídos y controla las solicitudes de cancelación.(Heredado de Stream).

System_CAPS_pubmethodReadByte()

Lee un byte de la secuencia y hace avanzar la posición de la secuencia en un byte, o devuelve -1 si está al final de la secuencia.(Heredado de Stream).

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Establece la posición en la actual OracleBFile secuencia.(Invalida Stream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetFileName(String, String)

Enlaza la OracleBFile objeto a otro archivo en el sistema operativo.

System_CAPS_pubmethodSetLength(Int64)

No se admite actualmente.(Invalida Stream.SetLength(Int64)).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

No se admite actualmente.(Invalida Stream.Write(Byte[], Int32, Int32)).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Escribe asincrónicamente una secuencia de bytes en la secuencia actual y avanza la posición actual en esta secuencia según el número de bytes escritos.(Heredado de Stream).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos y controla las solicitudes de cancelación.(Heredado de Stream).

System_CAPS_pubmethodWriteByte(Byte)

Escribe un byte a la posición actual en la secuencia y avanza la posición de la secuencia en un byte.(Heredado de Stream).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticNull

Representa un valor null OracleBFile objeto que no está enlazada a un archivo físico.

Oracle BFILE es de tipo de datos de Oracle LOB tipo de datos que contiene una referencia a datos binarios con un tamaño máximo de 4 gigabytes. Oracle BFILE difiere de otro Oracle LOB tipos de datos en que sus datos se almacenan en un archivo físico en el sistema operativo en lugar de en el servidor. Tenga en cuenta que el BFILE tipo de datos proporciona acceso de sólo lectura a los datos. Por lo tanto, heredaron los métodos de escritura de la Stream clase no son compatibles.

Otras características de un BFILE tipo de datos que la diferencian de un LOB tipo de datos son:

  • contiene datos no estructurados.

  • admite el troceo en el servidor.

  • utiliza semántica de copia de referencia. Por ejemplo, si realiza una operación de copia en un BFILE, solo el BFILE se copia el localizador (que es una referencia al archivo). Los datos del archivo no se copian.

El BFILE debe utilizar el tipo de datos para hacer referencia a LOBs que son de gran tamaño, y por lo tanto, no resultan prácticos para almacenarse en la base de datos. Hay sobrecarga de comunicación, servidor y cliente para usar un BFILE tipo de datos en comparación con el LOB el tipo de datos. Resulta más eficaz para tener acceso a una BFILE Si sólo necesita obtener una pequeña cantidad de datos. Resulta más eficaz para tener acceso a base de datos residente LOBs si es necesario obtener el objeto completo.

Cada valor no NULL OracleBFile objeto está asociado con dos entidades que definen la ubicación del archivo físico subyacente:

  • Un objeto DIRECTORY de Oracle, que es un alias de base de datos de un directorio del sistema de archivos, y

  • el nombre de archivo del archivo físico subyacente, que se encuentra en el directorio asociado con el objeto DIRECTORY.

Después de un BFILE está creado, puede recuperar su localizador en forma de una OracleBFile objeto mediante el ExecuteReader o ExecuteScalar métodos.

Para obtener un OracleBFile de objeto, llame a la GetOracleBFile (método).

El archivo físico que un OracleBFile objeto está asociado con no deben existir hasta que se intente obtener acceso a él. Una aplicación puede enlazar un OracleBFile a un archivo que no existe, cree el archivo físico en la ubicación esperada y, a continuación, llamar a Read.

Cualquier intento de obtener acceso a un cerrado OracleBFile utilizando el Read o Seek métodos vuelve a abrir un OracleBFile transmitir automáticamente.

En el ejemplo de C# siguiente se muestra cómo crear un BFILE en Oracle tabla y, a continuación, recuperarlo en forma de una OracleBFile objeto. En el ejemplo se muestra el uso de la OracleDataReader objeto y el OracleBFileSeek y Read métodos.

private void GetOracleBFile(string connectionString)
{
	//Create and open the connection.
	using (OracleConnection connection = new OracleConnection(connectionString))
	{
		connection.Open();

		//Create and execute the commands.
		OracleCommand command = connection.CreateCommand();
		command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
		command.ExecuteNonQuery();
		command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
		command.ExecuteNonQuery();
		command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
		command.ExecuteNonQuery();
		command.CommandText = "SELECT * FROM TestTable";

		//Read the BFile data.
		byte[] buffer = new byte[100];
		OracleDataReader dataReader = command.ExecuteReader();
		using (dataReader)
		{
			if (dataReader.Read())
			{
				OracleBFile BFile = dataReader.GetOracleBFile(1);
				using (BFile)
				{
					BFile.Seek(0, SeekOrigin.Begin);
					BFile.Read(buffer, 0, 100);
				}
			}
		}
	}
	return;
}

Para obtener más información sobre la creación y uso de Oracle BFILE, vea el tema correspondiente en la documentación de Oracle.

System_CAPS_noteNota

El BeginWrite, EndWrite, y WriteByte métodos, que se heredan de la System.IO.Stream de clases, no se admiten porque el BFILE tipo de datos es de sólo lectura.

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: