Compartir a través de


OracleLob Clase

Definición

Representa un tipo de datos LOB (objeto binario grande) almacenado en un servidor Oracle. Esta clase no puede heredarse.

public ref class OracleLob sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleLob : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleLob = class
    inherit Stream
    interface ICloneable
    interface IDisposable
    interface INullable
Public NotInheritable Class OracleLob
Inherits Stream
Implements ICloneable, INullable
Herencia
Implementaciones

Comentarios

Un OracleLob valor diferente de en OracleBFile el 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 y escritura, a diferencia de , OracleBFileque siempre es de solo lectura.

Puede OracleLob ser uno de estos OracleType tipos de datos.

Tipo de datos OracleType Descripción
Blob Tipo de datos de Oracle BLOB que contiene datos binarios con un tamaño máximo de 4 gigabytes (GB). Se asigna a una Array de tipo Byte.
Clob Tipo de datos de Oracle CLOB que contiene datos de caracteres, según el juego de caracteres predeterminado en el servidor, con un tamaño máximo de 4 GB. Se asigna a String.
NClob Tipo de datos de Oracle NCLOB que contiene datos de caracteres, en función del juego de caracteres nacional en el servidor con un tamaño máximo de 4 GB. Se asigna a String.

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

A continuación se muestran las características principales de un OracleLob tipo de datos que lo distinguen de los tipos de datos básicos de .NET:

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

  • Cuando se usa la OracleLob clase para acceder a un fragmento de un LOB valor, solo ese fragmento se pasa desde la base de datos de Oracle al cliente. Cuando se usa el GetChars método para acceder 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 objeto, llame al GetOracleLob método .

Puede construir un OracleLob que sea NULL con este formato:

OracleLob myLob = OracleLob.Null;  
Dim myLob As OracleLob = OracleLob.Null

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

if (myLob == OracleLob.Null)  
If (myLob = OracleLob.Null) Then

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

Al seleccionar una LOB columna que contiene un valor NULL, se devuelve Null.

Debe iniciar una transacción antes de obtener un objeto temporal LOB. De lo contrario, OracleDataReader es posible que no obtenga datos más adelante.

También puede abrir un elemento temporal LOB en Oracle llamando al DBMS_LOB. Procedimiento almacenado del sistema CREATETEMPORARY y enlace de un LOB parámetro de salida. En el lado cliente, un comportamiento temporal LOB se comporta como un basado en LOBtablas. Por ejemplo, para actualizar el objeto temporal LOB, debe incluirse en una transacción.

En el ejemplo siguiente se muestra cómo abrir un objeto temporal LOB:

var 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();  
var tempLob = (OracleLob)command.Parameters[0].Value;  
var 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(); 

Nota

Se produce un error en el método heredado WriteByte si se usa con datos de caracteres y se produce una InvalidOperationException excepción . Use el método Write en su lugar.

Las temporales LOBsolo se cierran cuando se cierra la conexión, pero con agrupación y bajo carga, las s temporales LOBno se cierran. Esto se puede resolver mediante la eliminación de , mediante la LOBinvocación tempLob.Dispose()de .

Campos

Null

Representa un objeto OracleLob nulo.

Propiedades

CanRead

Obtiene un valor que indica si se puede leer la secuencia LOB.

CanSeek

Obtiene un valor que indica si se pueden realizar operaciones de búsqueda hacia delante y hacia atrás.

CanTimeout

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

(Heredado de Stream)
CanWrite

Devuelve siempre un valor true, independientemente de si LOB admite o no la escritura.

ChunkSize

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

Connection

Obtiene el objeto OracleConnection que utiliza esta instancia de OracleLob.

IsBatched

Obtiene un valor que indica si una aplicación ha llamado al método BeginBatch().

IsNull

Obtiene un valor que indica si el objeto OracleLob es una secuencia Null.

IsTemporary

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

Length

Obtiene un valor que devuelve el tamaño de OracleLob.

LobType

Obtiene un valor que devuelve el tipo de datos LOB.

Position

Obtiene la actual posición de lectura en la secuencia OracleLob.

ReadTimeout

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)
Value

Obtiene el valor de secuencia de Common Language Runtime que equivale al valor subyacente.

WriteTimeout

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)

Métodos

Append(OracleLob)

Anexa datos del LOB especificado al LOB actual.

BeginBatch()

Evita que se activen los desencadenadores en el servidor mientras se realizan varias operaciones de lectura.

BeginBatch(OracleLobOpenMode)

Evita que se activen los desencadenadores del servidor mientras se realizan varias operaciones de lectura y escritura en el modo de acceso especificado.

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

Comienza una operación de lectura asincrónica. (Considere usar ReadAsync(Byte[], Int32, Int32) en su lugar).

(Heredado de Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de escritura asincrónica. (Considere usar WriteAsync(Byte[], Int32, Int32) en su lugar).

(Heredado de Stream)
Clone()

Crea un nuevo objeto OracleLob que hace referencia al mismo LOB de Oracle que el objeto OracleLob original.

Close()

Cierra la secuencia actual y libera todos los recursos asociados a la secuencia.

Close()

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)
CopyTo(Int64, OracleLob, Int64, Int64)

Realiza una copia desde este objeto OracleLob en un objeto OracleLob de destino con la cantidad de datos especificada, y la posición de desplazamiento de origen.

CopyTo(OracleLob)

Realiza una copia de este objeto OracleLob en un objeto OracleLob de destino.

CopyTo(OracleLob, Int64)

Copia datos de este objeto OracleLob en un objeto OracleLob de destino con la cantidad de datos especificada.

CopyTo(Stream)

Lee los bytes de la secuencia actual y los escribe en otra secuencia de destino. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyTo(Stream, Int32)

Lee todos los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(Stream, CancellationToken)

Lee de forma asincrónica los bytes de la secuencia actual y los escribe en otra secuencia mediante un token de cancelación especificado. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CopyToAsync(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. Ambas posiciones de secuencias están avanzadas por el número de bytes copiados.

(Heredado de Stream)
CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
CreateWaitHandle()
Obsoletos.
Obsoletos.
Obsoletos.

Asigna un objeto WaitHandle.

(Heredado de Stream)
Dispose()

Libera los recursos utilizados por este objeto.

Dispose()

Libera todos los recursos que usa Stream.

(Heredado de Stream)
Dispose(Boolean)

Libera los recursos no administrados que usa Stream y, de forma opcional, libera los recursos administrados.

(Heredado de Stream)
DisposeAsync()

Libera de forma asincrónica los recursos no administrados usados por Stream.

(Heredado de Stream)
EndBatch()

Permite que se activen de nuevo los desencadenadores en el servidor después de que se hayan realizado varias operaciones de escritura.

EndRead(IAsyncResult)

Espera a que se complete la lectura asincrónica que se encuentra pendiente. (Considere usar ReadAsync(Byte[], Int32, Int32) en su lugar).

(Heredado de Stream)
EndWrite(IAsyncResult)

Finaliza una operación de escritura asincrónica. (Considere usar WriteAsync(Byte[], Int32, Int32) en su lugar).

(Heredado de Stream)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Erase()

Borra todos los datos de este objeto OracleLob.

Erase(Int64, Int64)

Borra la cantidad de datos especificada de este objeto OracleLob.

Flush()

Actualmente no se admite.

FlushAsync()

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)
FlushAsync(CancellationToken)

Borra asincrónicamente todos los búferes de esta secuencia, y hace que todos los datos almacenados en búfer se escriban en el dispositivo subyacente y supervisa las solicitudes de cancelación.

(Heredado de Stream)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

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

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ObjectInvariant()
Obsoletos.

Proporciona compatibilidad con una clase Contract.

(Heredado de Stream)
Read(Byte[], Int32, Int32)

Lee una secuencia de bytes en la secuencia OracleLob actual y hace avanzar la posición dentro de la secuencia en función del número de bytes leídos.

Read(Span<Byte>)

Cuando se reemplaza en una clase derivada, se lee una secuencia de bytes en la secuencia actual y se hace avanzar la posición dentro de la secuencia el número de bytes leídos.

(Heredado de Stream)
ReadAsync(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)
ReadAsync(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)
ReadAsync(Memory<Byte>, 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)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Lee al menos un número mínimo de bytes de la secuencia actual y avanza la posición dentro de la secuencia por el número de bytes leídos.

(Heredado de Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Lee de forma asincrónica al menos un número mínimo de bytes de la secuencia actual, avanza la posición dentro de la secuencia por el número de bytes leídos y supervisa las solicitudes de cancelación.

(Heredado de Stream)
ReadByte()

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)
ReadExactly(Byte[], Int32, Int32)

count Lee el número de bytes de la secuencia actual y avanza la posición dentro de la secuencia.

(Heredado de Stream)
ReadExactly(Span<Byte>)

Lee bytes de la secuencia actual y avanza la posición dentro de la secuencia hasta buffer que se rellena.

(Heredado de Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica el count número de bytes de la secuencia actual, avanza la posición dentro de la secuencia y supervisa las solicitudes de cancelación.

(Heredado de Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Lee de forma asincrónica bytes de la secuencia actual, avanza la posición dentro de la secuencia hasta buffer que se rellena y supervisa las solicitudes de cancelación.

(Heredado de Stream)
Seek(Int64, SeekOrigin)

Establece la posición en la secuencia OracleLob actual.

SetLength(Int64)

Establece la longitud de la secuencia OracleLob en un valor menor que la longitud actual.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Write(Byte[], Int32, Int32)

Escribe una secuencia de bytes en la secuencia OracleLob actual y hace avanzar la posición actual dentro de la secuencia en el número de bytes especificado.

Write(ReadOnlySpan<Byte>)

Cuando se reemplaza en una clase derivada, se escribe una secuencia de bytes en la secuencia actual y se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos.

(Heredado de Stream)
WriteAsync(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)
WriteAsync(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)
WriteAsync(ReadOnlyMemory<Byte>, 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)
WriteByte(Byte)

Escribe un byte en la posición actual de la secuencia OracleLob y avanza la posición de la secuencia en un byte.

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

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Libera todos los recursos que usa Stream.

(Heredado de Stream)

Métodos de extensión

CopyToAsync(Stream, PipeWriter, CancellationToken)

Lee de forma asincrónica los bytes de Stream y los escribe en el elemento PipeWriter especificado, mediante un token de cancelación.

Se aplica a