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 OracleLob

 

Publicado: octubre de 2016

Representa un objeto binario grande (LOB) tipo de datos almacenados en un servidor Oracle. 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.OracleLob

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

NombreDescripción
System_CAPS_pubpropertyCanRead

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

System_CAPS_pubpropertyCanSeek

Obtiene un valor que indica si hacia delante y hacia atrás los operaciones de búsqueda 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

Siempre devuelve true, independientemente de si la LOB admite o no la escritura.(Invalida Stream.CanWrite).

System_CAPS_pubpropertyChunkSize

Obtiene un valor que indica el número mínimo de bytes a recuperar o enviar al servidor durante una operación de lectura y escritura.

System_CAPS_pubpropertyConnection

Obtiene el OracleConnection utilizado por esta instancia de la OracleLob.

System_CAPS_pubpropertyIsBatched

Obtiene un valor que indica si una aplicación llama el BeginBatch método.

System_CAPS_pubpropertyIsNull

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

System_CAPS_pubpropertyIsTemporary

Obtiene un valor que indica si la OracleLob es temporal LOB.

System_CAPS_pubpropertyLength

Obtiene un valor que devuelve el tamaño de la OracleLob.(Invalida Stream.Length).

System_CAPS_pubpropertyLobType

Obtiene un valor que devuelve el LOB tipo de datos.

System_CAPS_pubpropertyPosition

Obtiene la actual posición de lectura en el OracleLob 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 el valor de secuencia de common language runtime equivalente del valor subyacente.

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_pubmethodAppend(OracleLob)

Anexa datos desde las LOB a la actual LOB.

System_CAPS_pubmethodBeginBatch()

Impide que los desencadenadores de servidor activación al realizar varias operaciones de lectura.

System_CAPS_pubmethodBeginBatch(OracleLobOpenMode)

Impide desencadenadores del servidor activa mientras se realizan varias lee y las operaciones de escritura en el modo de acceso especificado.

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 un nuevo OracleLob objeto que hace referencia al mismo Oracle LOB que el original OracleLob objeto.

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 OracleLob a un destino OracleLob con la cantidad de datos y el desplazamiento de origen especificada.

System_CAPS_pubmethodCopyTo(OracleLob)

Copias de esta OracleLob a un destino OracleLob.

System_CAPS_pubmethodCopyTo(OracleLob, Int64)

Copias de esta OracleLob a un destino OracleLob con la cantidad de datos especificada.

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

Permite que los desencadenadores de servidor reanudar la activación después de realizar varias operaciones de escritura.

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

Borra todos los datos de este OracleLob.

System_CAPS_pubmethodErase(Int64, Int64)

Borra la cantidad especificada de los datos de este OracleLob.

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 OracleLob 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 OracleLob secuencia.(Invalida Stream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetLength(Int64)

Establece la longitud de la OracleLob un valor menor que la longitud actual de la secuencia.(Invalida Stream.SetLength(Int64)).

System_CAPS_pubmethodToString()

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

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Escribe una secuencia de bytes actual OracleLob secuencia y hace avanzar la posición actual dentro de la secuencia por el número de bytes escritos.(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 en la posición actual en el OracleLob de secuencia y hace avanzar la posición dentro de la secuencia en un byte.(Invalida Stream.WriteByte(Byte)).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticNull

Representa un valor null OracleLob objeto.

Un OracleLob difiere de un OracleBFile en que los datos se almacenan en el servidor en lugar de en un archivo físico en el sistema operativo. También puede ser un objeto de lectura-escritura, a diferencia de un OracleBFile, que siempre es de sólo lectura.

Un OracleLob puede ser uno de estos OracleType tipos de datos.

Tipo de datos OracleType

Descripción

Blob

Oracle BLOB tipo de datos que contiene datos binarios con un tamaño máximo de 4 gigabytes (GB). Se asigna a un Array del tipo Byte.

Clob

Oracle CLOB tipo de datos que contiene datos de caracteres basados en el carácter predeterminado establecido en el servidor, con un tamaño máximo de 4 GB. Se asigna a String.

NClob

Oracle NCLOB tipo de datos que contiene datos de caracteres basado en el juego en el servidor con un tamaño máximo de 4 GB de caracteres nacional. Se asigna a String.

Un desarrollador de aplicaciones .NET puede recuperar el Oracle LOB valores en tipos de datos .NET básicos, como Array de tipo Byte y String, o el especializada OracleLob tipo de datos. La OracleLob clase admite la lectura de datos de y escribir en el Oracle LOB en la base de datos de Oracle.

Los siguientes son las principales características de un OracleLob tipo de datos que se diferencian de los tipos de datos .NET básicos:

  • Después de recuperar el Oracle LOB valor de la base de datos de Oracle en el OracleLob (clase), puede cambiar el LOB datos en una transacción abierta y los cambios se reflejarán directamente en la base de datos. Si recupera Oracle LOB valor en un Array del tipo Byte o String y actualiza estas matrices, los cambios no se reflejan en la base de datos.

  • Cuando se usa el OracleLob clase para obtener acceso a un fragmento de un LOB valor, sólo se pasará ese fragmento de la base de datos de Oracle al cliente. Cuando se usa el GetChars método para tener acceso a un fragmento de un LOB valor, todo el contenido del valor se pasa desde la base de datos de Oracle al cliente.

Para obtener un OracleLob de objeto, llame a la GetOracleLob (método).

Puede construir un OracleLob que sea NULL mediante este formato:

OracleLob myLob = OracleLob.Null;

Esta técnica se utiliza principalmente para probar si una LOB devuelto desde el servidor es NULL, como se muestra en este ejemplo:

If(myLob == OracleLob.Null)

Un valor NULL LOB se comporta de forma similar a cero bytes LOB en que Read se realiza correctamente y siempre devuelve cero bytes.

Seleccionar una LOB columna que contiene un valor null devuelve Null.

Debe iniciar una transacción antes de obtener un objeto temporal LOB. De lo contrario, el OracleDataReader puede producir un error al obtener datos posteriormente.

También puede abrir un archivo temporal LOB en Oracle llamando a la DBMS_LOB. Sistema CREATETEMPORARY procedimiento almacenado y enlace un LOB parámetro de salida. En el lado del cliente, un archivo temporal LOB se comporta como una tabla base LOB. Por ejemplo, para actualizar temporal LOB, debe incluirse en una transacción.

En el ejemplo de C# siguiente se muestra cómo abrir un archivo temporal LOB.

OracleConnection connection = new OracleConnection("server=MyServer; integrated security=yes;");
connection.Open();
OracleTransaction transaction = connection.BeginTransaction();
OracleCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";
command.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
OracleLob tempLob = (OracleLob)command.Parameters[0].Value;
byte[] tempbuff = new byte[10000];
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(tempbuff,0,tempbuff.Length);
tempLob.EndBatch();
command.Parameters.Clear();
command.CommandText = "MyTable.MyProc";
command.CommandType = CommandType.StoredProcedure;  
command.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;
command.ExecuteNonQuery();
transaction.Commit();
connection.Close
System_CAPS_noteNota

Heredadas WriteByte método produce un error si se utiliza con datos de caracteres y un InvalidOperationException se produce. Use el método Write en su lugar.

Temporal LOBson sólo se cierran cuando se cierra la conexión, pero con agrupación y bajo carga temporal LOBno se cierran. Esto se puede resolver desechando temporal LOB, invocando tempLob.Dispose().

.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: