Nyelv

OracleLob Osztály

Definíció

Egy Oracle-kiszolgálón tárolt nagy objektum bináris (LOB) adattípusát jelöli. Ez az osztály nem örökölhető.

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
Öröklődés
Megvalósítás

Megjegyzések

Az OracleLob abban különbözik az OracleBFile-től, hogy az adatokat a kiszolgálón tárolják, nem pedig az operációs rendszer fizikai fájljában. Írásvédett objektum is lehet, ellentétben a OracleBFilemindig írásvédett objektummal.

OracleLob Ilyen adattípus lehet az egyikOracleType.

OracleType adattípus Leírás
Blob Oracle-adattípus BLOB , amely legfeljebb 4 gigabájt (GB) méretű bináris adatokat tartalmaz. Ez egy Array típusra Byteképez le.
Clob Egy Oracle-adattípus CLOB , amely a kiszolgálón beállított alapértelmezett karakterkészlet alapján tartalmaz karakteradatokat, maximális mérete 4 GB. Ez a térkép erre a hivatkozásra van leképzve String.
NClob Egy Oracle-adattípus NCLOB , amely karakteradatokat tartalmaz a kiszolgálón beállított nemzeti karakter alapján, legfeljebb 4 GB-os méretben. Ez a térkép erre a hivatkozásra van leképzve String.

A .NET alkalmazásfejlesztők az Oracle LOB értékeket egyszerű .NET adattípusokba, például Array típusú Byte és String, vagy speciális OracleLob adattípusba is lekérhetik. Az OracleLob osztály támogatja az Oracle-adatbázisban lévő adatok olvasását és az Oracle-be LOB való írást.

Egy OracleLob adattípus fő jellemzői az alábbiak, amelyek megkülönböztetik az alapszintű .NET adattípusoktól:

  • Miután lekérte az Oracle-értéket LOB az Oracle-adatbázisból az OracleLob osztályba, módosíthatja az LOB adatokat egy nyitott tranzakcióban, és a módosítások közvetlenül megjelennek az adatbázisban. Ha beolvassa az Oracle-értéket LOB egy Array típusba Byte , vagy String frissíti ezeket a tömböket, a módosítások nem jelennek meg az adatbázisban.

  • Amikor az OracleLob osztályt egy érték egy adattömbjének LOB eléréséhez használja, csak az adott adattömb lesz átadva az Oracle-adatbázisból az ügyfélnek. Amikor egy érték egy adattömbjének GetChars elérésére használja a LOB metódust, a rendszer az érték teljes tartalmát átadja az Oracle-adatbázisból az ügyfélnek.

Objektum beszerzéséhez OracleLob hívja meg a metódust GetOracleLob .

Az alábbi formátummal hozhat létre OracleLob NULL értéket:

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

Ez a technika elsősorban annak tesztelésére szolgál, hogy a kiszolgálóról visszaadott visszatérés null értékű-e LOB , ahogy az alábbi példa is szemlélteti:

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

A NULL LOB ugyanúgy viselkedik, mint a sikeres nulla bájt LOBRead , és mindig nulla bájtot ad vissza.

LOB Null értéket tartalmazó oszlop kijelölése eredményeNull.

Az ideiglenes LOBtranzakció beszerzése előtt meg kell kezdenie a tranzakciót. Ellenkező esetben előfordulhat, hogy a OracleDataReader későbbiekben az adatok nem lesznek beolvasva.

Az Oracle-ben is megnyithat egy ideiglenes LOB elemet a DBMS_LOB meghívásával. CREATETEMPORARY rendszer tárolt eljárása és kimeneti LOB paraméter kötése. Az ügyféloldalon az ideiglenes LOB rendszer táblaalapúként LOBviselkedik. Az ideiglenes LOBfrissítéshez például egy tranzakcióban kell szerepelnie.

Az alábbi példa bemutatja, hogyan nyithat meg egy ideiglenest 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();

Note

Az öröklődő WriteByte metódus meghiúsul, ha karakteradatokkal használják, és a rendszer eldob egy InvalidOperationException parancsot. Használja inkább a metódust Write .

Az ideiglenes LOBs-ek csak a kapcsolat bezárásakor vannak lezárva, de készletezéssel és terhelés alatt az ideiglenes LOBs-ek nem záródnak be. Ez az ideiglenes LOBparancs meghívásával tempLob.Dispose()oldható meg.

Mezők

Name Description
Null

Null OracleLob objektumot jelöl.

Tulajdonságok

Name Description
CanRead

Beolvas egy értéket, amely jelzi, hogy a LOB stream olvasható-e.

CanSeek

Lekéri az értéket, amely jelzi, hogy végrehajthatók-e előre- és hátrakeresési műveletek.

CanTimeout

Olyan értéket kap, amely meghatározza, hogy az aktuális stream időtúllépést okozhat-e.

(Öröklődés forrása Stream)
CanWrite

Mindig igaz értéket ad vissza, függetlenül attól, hogy a szöveg támogatja-e az LOB írást.

ChunkSize

Lekéri az olvasási/írási művelet során a kiszolgálóról lekérni vagy elküldeni kívánt bájtok minimális számát jelző értéket.

Connection

Lekéri az OracleConnection adott példány által használt példányt OracleLob.

IsBatched

Beolvas egy értéket, amely jelzi, hogy egy alkalmazás meghívta-e a metódust BeginBatch() .

IsNull

Lekéri az értéket, amely jelzi, hogy az OracleLobNull stream-e.

IsTemporary

Egy értéket kap, amely jelzi, hogy az ideiglenes.>

Length

Olyan értéket kap, amely a méretét OracleLobadja vissza.

LobType

Olyan értéket kap, amely az adattípust LOB adja vissza.

Position

Lekéri az aktuális olvasási pozíciót a OracleLob streamben.

ReadTimeout

Ezredmásodpercben lekéri vagy beállítja azt az értéket, amely meghatározza, hogy a stream mennyi ideig kísérel meg olvasni, mielőtt túllépi az időkorlátot.

(Öröklődés forrása Stream)
Value

Lekéri az alapul szolgáló értéknek megfelelő közös nyelvi futtatókörnyezeti streamértéket.

WriteTimeout

Ezredmásodpercben lekéri vagy beállít egy értéket, amely meghatározza, hogy a stream mennyi ideig kísérel meg írni, mielőtt időtúllépést végezne.

(Öröklődés forrása Stream)

Metódusok

Name Description
Append(OracleLob)

A megadott LOB adatok hozzáfűzése az aktuálishoz LOB.

BeginBatch()

Megakadályozza, hogy a kiszolgálóoldali triggerek több olvasási művelet végrehajtása közben aktiválódnak.

BeginBatch(OracleLobOpenMode)

Megakadályozza, hogy a kiszolgálóoldali triggerek több olvasási és írási művelet végrehajtása közben aktiválódnak a megadott hozzáférési módban.

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

Aszinkron olvasási műveletet kezd. (Fontolja meg a használatot ReadAsync(Byte[], Int32, Int32) .)

(Öröklődés forrása Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Aszinkron írási műveletet kezd. (Fontolja meg a használatot WriteAsync(Byte[], Int32, Int32) .)

(Öröklődés forrása Stream)
Clone()

Létrehoz egy új OracleLob objektumot, amely ugyanarra az Oracle-ra LOB hivatkozik, mint az eredeti OracleLob objektum.

Close()

Bezárja az aktuális streamet, és felszabadítja a streamhez társított erőforrásokat.

Close()

Bezárja az aktuális streamet, és felszabadítja az aktuális adatfolyamhoz társított összes erőforrást (például szoftvercsatornákat és fájlfogópontokat). A metódus meghívása helyett győződjön meg arról, hogy a stream megfelelően van elosztva.

(Öröklődés forrása Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Ebből a célhelyre OracleLob másolja OracleLob a megadott mennyiségű adatot és a forráseltolást.

CopyTo(OracleLob, Int64)

Ebből a célhelyre OracleLob másolhatja OracleLob a megadott mennyiségű adatot.

CopyTo(OracleLob)

Másolatok erről OracleLob a célhelyre OracleLob.

CopyTo(Stream, Int32)

Beolvassa a bájtokat az aktuális streamből, és egy megadott pufferméret használatával egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki.

(Öröklődés forrása Stream)
CopyTo(Stream)

Beolvassa a bájtokat az aktuális streamből, és egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki.

(Öröklődés forrása Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Aszinkron módon beolvassa a bájtokat az aktuális streamből, és egy megadott pufferméret és lemondási jogkivonat használatával egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki.

(Öröklődés forrása Stream)
CopyToAsync(Stream, Int32)

Aszinkron módon beolvassa a bájtokat az aktuális adatfolyamból, és egy megadott puffermérettel egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki.

(Öröklődés forrása Stream)
CopyToAsync(Stream)

Aszinkron módon beolvassa a bájtokat az aktuális streamből, és egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki.

(Öröklődés forrása Stream)
CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
CreateWaitHandle()
Elavult.
Elavult.
Elavult.

Objektum lefoglalása WaitHandle .

(Öröklődés forrása Stream)
Dispose()

Felszabadítja az objektum által használt erőforrásokat.

Dispose()

Felszabadítja a .-hez használt összes erőforrást Stream.

(Öröklődés forrása Stream)
Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által Stream használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

(Öröklődés forrása Stream)
EndBatch()

Lehetővé teszi, hogy a kiszolgálóoldali triggerek több írási művelet végrehajtása után is folytatják az égetést.

EndRead(IAsyncResult)

Megvárja, amíg a függőben lévő aszinkron olvasás befejeződik. (Fontolja meg a használatot ReadAsync(Byte[], Int32, Int32) .)

(Öröklődés forrása Stream)
EndWrite(IAsyncResult)

Aszinkron írási művelet befejezése. (Fontolja meg a használatot WriteAsync(Byte[], Int32, Int32) .)

(Öröklődés forrása Stream)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
Erase()

Törli az összes adatot ebből a OracleLobhelyről.

Erase(Int64, Int64)

Törli a megadott mennyiségű adatot ebből a OracleLobhelyről.

Flush()

Jelenleg nem támogatott.

FlushAsync()

Aszinkron módon törli az adatfolyam összes pufferét, és a pufferelt adatokat a mögöttes eszközre írja.

(Öröklődés forrása Stream)
FlushAsync(CancellationToken)

Aszinkron módon törli a stream összes pufferét, a pufferelt adatokat az alapul szolgáló eszközre írja, és figyeli a lemondási kérelmeket.

(Öröklődés forrása Stream)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
ObjectInvariant()
Elavult.

Támogatja a Contract.

(Öröklődés forrása Stream)
Read(Byte[], Int32, Int32)

Beolvassa az aktuális OracleLob streamből származó bájtok sorozatát, és az olvasási bájtok számával előrelépteti a streamen belüli pozíciót.

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

Aszinkron módon beolvassa a bájtok sorozatát az aktuális adatfolyamból, az olvasási bájtok számával előrelép a streamben, és figyeli a lemondási kérelmeket.

(Öröklődés forrása Stream)
ReadAsync(Byte[], Int32, Int32)

Aszinkron módon beolvassa az aktuális adatfolyamból származó bájtok sorozatát, és az olvasási bájtok számával előrelépteti a streamen belüli pozíciót.

(Öröklődés forrása Stream)
ReadByte()

Beolvassa a bájtot a streamből, és egy bájttal előrelép a streamben, vagy -1 ad vissza, ha a stream végén van.

(Öröklődés forrása Stream)
Seek(Int64, SeekOrigin)

Beállítja az aktuális OracleLob stream pozícióját.

SetLength(Int64)

A stream hosszát az OracleLob aktuálisnál kisebb értékre állítja.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
Write(Byte[], Int32, Int32)

Bájtok sorozatát írja az aktuális OracleLob adatfolyamba, és a megírt bájtok számával előrelépteti az aktuális pozíciót ebben a streamben.

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

Aszinkron módon bájtok sorozatát írja az aktuális streambe, az aktuális pozíciót a streamen belül a megírt bájtok számával lépteti előre, és figyeli a lemondási kérelmeket.

(Öröklődés forrása Stream)
WriteAsync(Byte[], Int32, Int32)

Aszinkron módon bájtok sorozatát írja az aktuális adatfolyamba, és a megírt bájtok számával előrelépteti a stream aktuális pozícióját.

(Öröklődés forrása Stream)
WriteByte(Byte)

Bájtot ír a stream aktuális helyére OracleLob , és egy bájttal előrelép a streamben.

WriteByte(Byte)

Bájtot ír a stream aktuális helyére, és egy bájttal előrelépteti a streamen belüli pozíciót.

(Öröklődés forrása Stream)

Explicit interfész-implementációk

Name Description
IDisposable.Dispose()

Felszabadítja a .-hez használt összes erőforrást Stream.

(Öröklődés forrása Stream)

A következőre érvényes: