OracleBFile Osztály

Definíció

Az Oracle-adattípus BFILE használatához tervezett felügyelt OracleBFile objektumot jelöli. Ez az osztály nem örökölhető.

public ref class OracleBFile sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleBFile : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleBFile = class
    inherit Stream
    interface ICloneable
    interface IDisposable
    interface INullable
type OracleBFile = class
    inherit Stream
    interface ICloneable
    interface INullable
    interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
Öröklődés
Megvalósítás

Megjegyzések

Az Oracle BFILE adattípus egy Oracle-adattípus LOB , amely legfeljebb 4 gigabájt méretű bináris adatokra mutató hivatkozást tartalmaz. Az Oracle BFILE abban különbözik a többi Oracle-adattípustól LOB , hogy az adatok fizikai fájlban vannak tárolva az operációs rendszerben, nem pedig a kiszolgálón. Vegye figyelembe, hogy az BFILE adattípus írásvédett hozzáférést biztosít az adatokhoz. Ezért az Stream osztálytól örökölt írásorientált metódusok nem támogatottak.

Az adattípusok egyéb jellemzői BFILE , amelyek megkülönböztetik az adattípustól LOB , az alábbiak:

  • Strukturálatlan adatokat tartalmaz.

  • Támogatja a kiszolgálóoldali adattömb-készítést.

  • Referencia másolási szemantikát alkalmaz. Ha például másolási műveletet hajt végre egy BFILEfájlon, a program csak a BFILE lokátort (a fájlra mutató hivatkozást) másolja. A fájlban lévő adatok másolása nem történik meg.

Az BFILE adattípust nagy méretű hivatkozási LOBs-ekre kell használni, ezért nem célszerű az adatbázisban tárolni. Az adattípusok adattípushoz viszonyított LOB használatára BFILE ügyfél-, kiszolgáló- és kommunikációs terhelés hárul. Hatékonyabb a hozzáférés BFILE , ha csak kis mennyiségű adatot kell beszereznie. Ha a teljes objektumot le kell szereznie, hatékonyabban érheti el az adatbázis-rezidens LOBs-eket.

Minden nem NULL OracleBFile objektum két olyan entitáshoz van társítva, amelyek meghatározzák a mögöttes fizikai fájl helyét:

  • Oracle DIRECTORY-objektum, amely a fájlrendszer egy könyvtárának adatbázis-aliasa, és

  • A mögöttes fizikai fájl fájlneve, amely a CÍMTÁR-objektumhoz társított könyvtárban található.

A BFILE létrehozás után lekérheti annak lokátorát egy OracleBFile objektum formájában a metódusok vagy ExecuteScalar metódusok ExecuteReader használatával.

Objektum beszerzéséhez OracleBFile hívja meg a metódust GetOracleBFile .

Az objektumhoz társított fizikai fájlnak OracleBFile nem kell léteznie, amíg meg nem próbálja elérni. Egy alkalmazás nem létező fájlhoz köthet egy OracleBFile fájlt, létrehozhatja a fizikai fájlt a várt helyen, majd meghívhatja a fájlt Read.

A bezárt OracleBFile adatok elérésére tett kísérletek a Read metódusok használatával Seek automatikusan újra megnyitják a streamet OracleBFile .

Az alábbi C#-példa bemutatja, hogyan hozhat létre egy BFILE Oracle-táblát, majd hogyan kérdezheti le objektum formájában OracleBFile . A példa az objektum és a OracleDataReaderOracleBFileSeekRead metódusok használatát mutatja be.

private void GetOracleBFile(string connectionString)
{
    //Create and open the connection.
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
        connection.Open();

        //Create and execute the commands.
        OracleCommand command = connection.CreateCommand();
        command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
        command.ExecuteNonQuery();
        command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
        command.ExecuteNonQuery();
        command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
        command.ExecuteNonQuery();
        command.CommandText = "SELECT * FROM TestTable";

        //Read the BFile data.
        byte[] buffer = new byte[100];
        OracleDataReader dataReader = command.ExecuteReader();
        using (dataReader)
        {
            if (dataReader.Read())
            {
                OracleBFile BFile = dataReader.GetOracleBFile(1);
                using (BFile)
                {
                    BFile.Seek(0, SeekOrigin.Begin);
                    BFile.Read(buffer, 0, 100);
                }
            }
        }
    }
    return;
}

Az Oracle BFILElétrehozásával és használatával kapcsolatos további információkért tekintse meg az Oracle dokumentációjának megfelelő témakörét.

Note

Az BeginWriteosztálytól System.IO.Stream örökölt , EndWriteés WriteByte metódusok nem támogatottak, mert az BFILE adattípus írásvédett.

Mezők

Name Description
Null

Olyan null OracleBFile objektumot jelöl, amely nincs fizikai fájlhoz kötve.

Tulajdonságok

Name Description
CanRead

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

CanSeek

Egy értéket kap, amely jelzi, hogy végrehajthatók-e a továbbítási és a visszakeresé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

Egy értéket kap, amely jelzi, hogy az objektum támogatja-e az írást.

Connection

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

DirectoryName

Lekéri annak a CÍMTÁR-objektumnak a nevét, amelyhez egy OracleBFile objektum társítva van.

FileExists

Beolvas egy értéket, amely jelzi, hogy létezik-e adatokat tartalmazó BFILE fizikai fájl az operációs rendszerben.

FileName

Lekéri az elérési út nélküli név nevét BFILE .

IsNull

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

Length

Olyan értéket kap, amely annak a fizikai fájlnak a hosszát adja vissza bájtban, amelyhez az OracleBFile objektum társítva van.

Position

Lekéri az aktuális olvasási pozíciót a OracleBFile 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

Array Lekéri az adatokat tartalmazó típust ByteOracleBFile.

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
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 másolatot az OracleBFile objektumról, amely ugyanahhoz a fizikai fájlhoz van társítva, mint az eredeti.

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 OracleBFile a célhelyre OracleLob másolhatja a megadott mennyiségű adatot, a forráseltolást és a céleltolást.

CopyTo(OracleLob, Int64)

Másolja a teljes tartalmat OracleBFile egy célhelyre OracleLob a megadott eltolásnál.

CopyTo(OracleLob)

Másolja a teljes tartalmat OracleBFile a célhely OracleLobelejére.

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.

Objektum lefoglalása WaitHandle .

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

Felszabadítja az objektum által használt összes erőforrást.

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

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

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 OracleBFile 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 OracleBFile stream pozícióját.

SetFileName(String, String)

Az objektumot OracleBFile egy másik fájlhoz köti az operációs rendszerben.

SetLength(Int64)

Jelenleg nem támogatott.

ToString()

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

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

Jelenleg nem támogatott.

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, é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: