OracleLob Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 losLOB
datos en una transacción abierta y los cambios se reflejan directamente en la base de datos. Si recupera el valor de OracleLOB
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 unLOB
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 LOB
tablas. 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 LOB
solo se cierran cuando se cierra la conexión, pero con agrupación y bajo carga, las s temporales LOB
no se cierran. Esto se puede resolver mediante la eliminación de , mediante la LOB
invocación tempLob.Dispose()
de .
Campos
Null |
Representa un objeto OracleLob nulo. |
Propiedades
CanRead |
Obtiene un valor que indica si se puede leer la secuencia |
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 |
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 |
Length |
Obtiene un valor que devuelve el tamaño de OracleLob. |
LobType |
Obtiene un valor que devuelve el tipo de datos |
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 |
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 |
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) |
|
ReadExactly(Span<Byte>) |
Lee bytes de la secuencia actual y avanza la posición dentro de la secuencia hasta |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Lee de forma asincrónica el |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Lee de forma asincrónica bytes de la secuencia actual, avanza la posición dentro de la secuencia hasta |
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. |