OracleLob Klas

Definitie

Vertegenwoordigt een binair (LOB) objectgegevenstype dat is opgeslagen op een Oracle-server. Deze klasse kan niet worden overgenomen.

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
Overname
Implementeringen

Opmerkingen

Een OracleLob verschilt van een OracleBFile doordat de gegevens op de server worden opgeslagen in plaats van in een fysiek bestand in het besturingssysteem. Het kan ook een read-write-object zijn, in tegenstelling tot een OracleBFile, dat altijd alleen-lezen is.

Een OracleLob van deze gegevenstypen kan een van deze OracleType gegevenstypen zijn.

OracleType-gegevenstype Description
Blob Een Oracle-gegevenstype BLOB dat binaire gegevens bevat met een maximale grootte van 4 gigabyte (GB). Dit wordt toegewezen aan een Array type Byte.
Clob Een Oracle-gegevenstype CLOB dat tekengegevens bevat, op basis van de standaardtekenset op de server, met een maximale grootte van 4 GB. Dit wordt toegewezen aan String.
NClob Een Oracle-gegevenstype NCLOB dat tekengegevens bevat, op basis van de nationale tekenset op de server met een maximale grootte van 4 GB. Dit wordt toegewezen aan String.

Een .NET toepassingsontwikkelaar kan de Oracle LOB-waarden ophalen in basisgegevenstypen .NET, zoals Array van het type Byte en String, of het gespecialiseerde OracleLob gegevenstype. De OracleLob klasse ondersteunt het lezen van gegevens van en schrijven naar het Oracle LOB in de Oracle-database.

Hieronder vindt u de belangrijkste kenmerken van een OracleLob gegevenstype dat deze onderscheidt van basisgegevenstypen .NET:

  • Nadat u de Oracle-waarde LOB uit de Oracle-database in de OracleLob klasse hebt opgehaald, kunt u de LOB gegevens in een geopende transactie wijzigen en worden uw wijzigingen rechtstreeks doorgevoerd in de database. Als u de Oracle-waarde LOB ophaalt in een van het Array type Byte of String deze matrices bijwerkt, worden uw wijzigingen niet doorgevoerd in de database.

  • Wanneer u de OracleLob klasse gebruikt om toegang te krijgen tot een segment van een LOB waarde, wordt alleen dat segment doorgegeven vanuit de Oracle-database aan de client. Wanneer u de GetChars methode gebruikt om toegang te krijgen tot een segment van een LOB waarde, wordt de volledige inhoud van de waarde doorgegeven vanuit de Oracle-database aan de client.

Als u een OracleLob object wilt verkrijgen, roept u de GetOracleLob methode aan.

U kunt een null OracleLob maken met behulp van deze indeling:

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

Deze techniek wordt voornamelijk gebruikt om te testen of een LOB geretourneerde server NULL is, zoals in dit voorbeeld wordt geïllustreerd:

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

Een NULL LOB gedraagt zich op dezelfde manier als een nul-byte LOB in die Read slaagt en retourneert altijd nul bytes.

Als u een LOB kolom selecteert Nulldie een null-waarde bevat, wordt geretourneerd.

U moet een transactie starten voordat u een tijdelijke LOBtransactie krijgt. Anders kan de OracleDataReader gegevens later niet meer worden opgehaald.

U kunt ook een tijdelijk LOB bestand openen in Oracle door de DBMS_LOB aan te roepen. CREATETEMPORARY-systeem opgeslagen procedure en binding van een LOB uitvoerparameter. Aan de clientzijde gedraagt een tijdelijk LOB zich als een tabel.LOB Als u bijvoorbeeld de tijdelijke LOBupdate wilt bijwerken, moet deze worden ingesloten in een transactie.

In het volgende voorbeeld ziet u hoe u een tijdelijk bestand LOBopent:

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

Note

De overgenomen WriteByte methode mislukt als deze wordt gebruikt met tekengegevens en er een InvalidOperationException wordt gegenereerd. Gebruik in plaats daarvan de Write methode.

Tijdelijke LOBs worden alleen gesloten wanneer de verbinding is gesloten, maar met pooling en onder belasting worden tijdelijke LOBs niet gesloten. Dit kan worden opgelost door de tijdelijke LOBoplossing op te stoten door aan te tempLob.Dispose()roepen.

Velden

Name Description
Null

Vertegenwoordigt een null-object OracleLob .

Eigenschappen

Name Description
CanRead

Hiermee wordt een waarde opgehaald die aangeeft of de LOB stream kan worden gelezen.

CanSeek

Hiermee wordt een waarde opgehaald die aangeeft of bewerkingen voor voorwaartse en achterwaartse zoekacties kunnen worden uitgevoerd.

CanTimeout

Hiermee wordt een waarde opgehaald die bepaalt of er een time-out optreedt voor de huidige stroom.

(Overgenomen van Stream)
CanWrite

Retourneert altijd waar, ongeacht of het LOB schrijven wel of niet ondersteunt.

ChunkSize

Hiermee wordt een waarde opgehaald die het minimum aantal bytes aangeeft dat moet worden opgehaald van of verzonden naar de server tijdens een lees-/schrijfbewerking.

Connection

Hiermee haalt u het OracleConnection gebruik op van dit exemplaar van de OracleLob.

IsBatched

Hiermee wordt een waarde opgehaald die aangeeft of een toepassing de BeginBatch() methode aangeroepen heeft.

IsNull

Hiermee wordt een waarde opgehaald die aangeeft of het OracleLob een Null stroom is.

IsTemporary

Hiermee wordt een waarde opgehaald die aangeeft of het OracleLob een tijdelijke LOBwaarde is.

Length

Hiermee wordt een waarde opgehaald die de grootte van de OracleLobwaarde retourneert.

LobType

Hiermee wordt een waarde opgehaald die het LOB gegevenstype retourneert.

Position

Hiermee haalt u de huidige leespositie in de OracleLob stroom op.

ReadTimeout

Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stroom probeert te lezen voordat er een time-out optreedt.

(Overgenomen van Stream)
Value

Hiermee haalt u het equivalent van de streamwaarde voor de algemene taalruntime op van de onderliggende waarde.

WriteTimeout

Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stream probeert te schrijven voordat er een time-out optreedt.

(Overgenomen van Stream)

Methoden

Name Description
Append(OracleLob)

Voegt gegevens van de opgegeven LOB toe aan de huidige LOB.

BeginBatch()

Hiermee voorkomt u dat triggers aan de serverzijde worden geactiveerd tijdens het uitvoeren van meerdere leesbewerkingen.

BeginBatch(OracleLobOpenMode)

Hiermee voorkomt u dat triggers aan de serverzijde worden geactiveerd tijdens het uitvoeren van meerdere lees- en schrijfbewerkingen in de opgegeven toegangsmodus.

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

Begint een asynchrone leesbewerking. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32) .)

(Overgenomen van Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Hiermee wordt een asynchrone schrijfbewerking gestart. (Overweeg in plaats daarvan om te gebruiken WriteAsync(Byte[], Int32, Int32) .)

(Overgenomen van Stream)
Clone()

Hiermee maakt u een nieuw OracleLob object dat verwijst naar hetzelfde Oracle LOB als het oorspronkelijke OracleLob object.

Close()

Hiermee sluit u de huidige stroom en publiceert u resources die aan de stream zijn gekoppeld.

Close()

Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. In plaats van deze methode aan te roepen, moet u ervoor zorgen dat de stream correct wordt verwijderd.

(Overgenomen van Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Kopieert hiervan OracleLob naar een bestemming OracleLob met de opgegeven hoeveelheid gegevens en de bronverschil.

CopyTo(OracleLob, Int64)

Kopieert van dit OracleLob naar een bestemming OracleLob met de opgegeven hoeveelheid gegevens.

CopyTo(OracleLob)

Kopieën hiervan OracleLob naar een bestemming OracleLob.

CopyTo(Stream, Int32)

Leest de bytes uit de huidige stream en schrijft ze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

(Overgenomen van Stream)
CopyTo(Stream)

Leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

(Overgenomen van Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

(Overgenomen van Stream)
CopyToAsync(Stream, Int32)

Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

(Overgenomen van Stream)
CopyToAsync(Stream)

Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes.

(Overgenomen van Stream)
CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
CreateWaitHandle()
Verouderd.

Wijst een WaitHandle object toe.

(Overgenomen van Stream)
Dispose()

Releases van de resources die door dit object worden gebruikt.

Dispose()

Alle resources die worden gebruikt door de Stream.

(Overgenomen van Stream)
Dispose(Boolean)

Publiceert de niet-beheerde resources die worden gebruikt door de Stream beheerde resources en brengt eventueel de beheerde resources vrij.

(Overgenomen van Stream)
EndBatch()

Hiermee kunnen triggers aan de serverzijde worden hervat nadat er meerdere schrijfbewerkingen zijn uitgevoerd.

EndRead(IAsyncResult)

Wacht totdat de asynchrone leesbewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32) .)

(Overgenomen van Stream)
EndWrite(IAsyncResult)

Hiermee wordt een asynchrone schrijfbewerking beëindigd. (Overweeg in plaats daarvan om te gebruiken WriteAsync(Byte[], Int32, Int32) .)

(Overgenomen van Stream)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Erase()

Hiermee worden alle gegevens van deze OracleLobgegevens gewist.

Erase(Int64, Int64)

Hiermee wordt de opgegeven hoeveelheid gegevens gewist.OracleLob

Flush()

Momenteel niet ondersteund.

FlushAsync()

Asynchroon wist alle buffers voor deze stroom en zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven.

(Overgenomen van Stream)
FlushAsync(CancellationToken)

Asynchroon wist alle buffers voor deze stroom, zorgt ervoor dat gebufferde gegevens naar het onderliggende apparaat worden geschreven en annuleringsaanvragen worden gecontroleerd.

(Overgenomen van Stream)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetLifetimeService()

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
InitializeLifetimeService()

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
ObjectInvariant()
Verouderd.

Biedt ondersteuning voor een Contract.

(Overgenomen van Stream)
Read(Byte[], Int32, Int32)

Hiermee wordt een reeks bytes uit de huidige OracleLob stroom gelezen en wordt de positie binnen de stream verplaatst door het aantal bytes dat is gelezen.

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

Asynchroon leest een reeks bytes uit de huidige stroom, verplaatst de positie binnen de stream door het aantal gelezen bytes en bewaakt annuleringsaanvragen.

(Overgenomen van Stream)
ReadAsync(Byte[], Int32, Int32)

Asynchroon leest een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes.

(Overgenomen van Stream)
ReadByte()

Hiermee leest u een byte uit de stroom en wordt de positie binnen de stream met één byte vooruit gelezen of wordt -1 geretourneerd als aan het einde van de stream.

(Overgenomen van Stream)
Seek(Int64, SeekOrigin)

Hiermee stelt u de positie op de huidige OracleLob stroom in.

SetLength(Int64)

Hiermee stelt u de lengte van de OracleLob stroom in op een waarde die kleiner is dan de huidige lengte.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
Write(Byte[], Int32, Int32)

Hiermee schrijft u een reeks bytes naar de huidige OracleLob stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes.

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

Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen.

(Overgenomen van Stream)
WriteAsync(Byte[], Int32, Int32)

Asynchroon schrijft een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes.

(Overgenomen van Stream)
WriteByte(Byte)

Hiermee schrijft u een byte naar de huidige positie in de OracleLob stroom en wordt de positie binnen de stream met één byte vooruit.

WriteByte(Byte)

Hiermee schrijft u een byte naar de huidige positie in de stroom en wordt de positie binnen de stream met één byte vooruit.

(Overgenomen van Stream)

Expliciete interface-implementaties

Name Description
IDisposable.Dispose()

Alle resources die worden gebruikt door de Stream.

(Overgenomen van Stream)

Van toepassing op