OracleLob Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
LOBaz Oracle-adatbázisból az OracleLob osztályba, módosíthatja azLOBadatokat egy nyitott tranzakcióban, és a módosítások közvetlenül megjelennek az adatbázisban. Ha beolvassa az Oracle-értéketLOBegy 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
LOBelé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 aLOBmetó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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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) | |
| 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) |