OracleBFile Třída

Definice

Představuje spravovaný OracleBFile objekt navržený pro práci s datovým typem Oracle BFILE . Tato třída se nemůže dědit.

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
Dědičnost
Implementuje

Poznámky

Datový typ Oracle BFILE je datový typ Oracle LOB , který obsahuje odkaz na binární data s maximální velikostí 4 gigabajty. Oracle BFILE se liší od jiných datových typů Oracle LOB tím, že jeho data jsou uložena ve fyzickém souboru v operačním systému, nikoli na serveru. Všimněte si BFILE , že datový typ poskytuje přístup k datům jen pro čtení. Proto nejsou podporovány metody orientované na Stream zápis zděděné z třídy.

Další vlastnosti datového typu, které ho BFILE odlišují od datového LOB typu, jsou následující:

  • Obsahuje nestrukturovaná data.

  • Podporuje vytváření bloků dat na straně serveru.

  • Používá sémantiku kopírování odkazu. Pokud například provedete operaci kopírování na objektu BFILE, zkopíruje BFILE se pouze lokátor (což je odkaz na soubor). Data v souboru se nezkopírují.

Datový BFILE typ by se měl použít pro odkazování LOBna soubory, které jsou velké, a proto není vhodné je ukládat do databáze. Při použití datového typu v porovnání s datovým typem BFILELOB existuje režijní zatížení klienta, serveru a komunikace. Přístup k sadě BFILE je efektivnější, pokud potřebujete získat pouze malé množství dat. Přístup k rezidentům LOBdatabáze je efektivnější, pokud potřebujete získat celý objekt.

Každý objekt bez hodnoty NULL OracleBFile je přidružený ke dvěma entitami, které definují umístění podkladového fyzického souboru:

  • Objekt Oracle DIRECTORY, což je alias databáze pro adresář v systému souborů a

  • Název souboru základního fyzického souboru, který je umístěn v adresáři přidruženém k objektu DIRECTORY.

BFILE Po vytvoření můžete načíst jeho lokátor ve formě objektu OracleBFile pomocí ExecuteReader metod neboExecuteScalar.

Chcete-li získat OracleBFile objekt, zavolejte metodu GetOracleBFile .

Fyzický soubor, ke kterému OracleBFile je objekt přidružený, nemusí existovat, dokud se k němu nepokusíte získat přístup. Aplikace může vytvořit vazbu OracleBFile na neexistující soubor, vytvořit fyzický soubor v očekávaném umístění a pak volat Read.

Při každém pokusu o přístup k uzavřenému OracleBFile objektu Read pomocí metody nebo Seek se datový proud automaticky znovu otevře OracleBFile .

Následující příklad jazyka C# ukazuje, jak můžete vytvořit BFILE tabulku Oracle a pak ji načíst ve formě objektu OracleBFile . Příklad ukazuje použití objektu OracleDataReader a OracleBFileSeek metod a Read .

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;
}

Další informace o vytváření a používání oracle BFILEnajdete v příslušném tématu v dokumentaci oracle.

Poznámka

Metody BeginWrite, EndWritea WriteByte , které jsou zděděny z System.IO.Stream třídy, nejsou podporovány, protože BFILE datový typ je jen pro čtení.

Pole

Null

Představuje objekt null OracleBFile , který není vázán na fyzický soubor.

Vlastnosti

CanRead

Získá hodnotu označující, zda BFILE datový proud lze číst.

CanSeek

Získá hodnotu označující, zda lze provést operace dopředné hledání a zpětné hledání.

CanTimeout

Získá hodnotu, která určuje, zda aktuální datový proud může vypršení časového limitu.

(Zděděno od Stream)
CanWrite

Získá hodnotu označující, zda objekt podporuje zápis.

Connection

OracleConnection Získá objekt použitý touto instancí objektu OracleBFile.

DirectoryName

Získá název objektu DIRECTORY, ke kterému OracleBFile je objekt přidružen.

FileExists

Získá hodnotu označující, zda fyzický soubor obsahující BFILE data existuje v operačním systému.

FileName

Získá název BFILE bez cesty.

IsNull

Získá hodnotu, která označuje, zda OracleBFile je Null datový proud.

Length

Získá hodnotu, která vrátí délku v bajtech fyzického souboru, ke kterému OracleBFile je objekt přidružen.

Position

Získá aktuální pozici čtení v datovém OracleBFile proudu.

ReadTimeout

Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí číst před vypršením časového limitu.

(Zděděno od Stream)
Value

Array Získá typByte, který obsahuje OracleBFile data.

WriteTimeout

Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí zapisovat před vypršením časového limitu.

(Zděděno od Stream)

Metody

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

Spustí asynchronní operaci čtení. (Zvažte místo toho použití ReadAsync(Byte[], Int32, Int32) .)

(Zděděno od Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Spustí asynchronní operaci zápisu. (Zvažte místo toho použití WriteAsync(Byte[], Int32, Int32) .)

(Zděděno od Stream)
Clone()

Vytvoří kopii tohoto OracleBFile objektu přidruženou ke stejnému fyzickému souboru jako původní.

Close()

Zavře aktuální datový proud a uvolní všechny prostředky (například sokety a popisovače souborů) přidružené k aktuálnímu datovému proudu. Místo volání této metody se ujistěte, že je datový proud správně odstraněn.

(Zděděno od Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Zkopíruje se z tohoto OracleBFile umístění do cíle OracleLob se zadaným množstvím dat, zdrojovým posunem a posunem cíle.

CopyTo(OracleLob)

Zkopíruje celý obsah tohoto OracleBFile objektu na začátek cílového objektu OracleLob.

CopyTo(OracleLob, Int64)

Zkopíruje celý obsah do OracleBFile cíle OracleLob v zadaném posunu.

CopyTo(Stream)

Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CopyTo(Stream, Int32)

Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CopyToAsync(Stream)

Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CopyToAsync(Stream, CancellationToken)

Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadaného tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CopyToAsync(Stream, Int32)

Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů.

(Zděděno od Stream)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy používaného ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
CreateWaitHandle()
Zastaralé.
Zastaralé.
Zastaralé.

Přidělí WaitHandle objekt.

(Zděděno od Stream)
Dispose()

Uvolní všechny prostředky, které tento objekt používá.

Dispose()

Uvolní všechny prostředky používané nástrojem Stream.

(Zděděno od Stream)
Dispose(Boolean)

Uvolní nespravované prostředky používané Stream nástrojem a volitelně uvolní spravované prostředky.

(Zděděno od Stream)
DisposeAsync()

Asynchronně uvolní nespravované prostředky používané Streamnástrojem .

(Zděděno od Stream)
EndRead(IAsyncResult)

Čeká na dokončení čekajícího asynchronního čtení. (Zvažte místo toho použití ReadAsync(Byte[], Int32, Int32) .)

(Zděděno od Stream)
EndWrite(IAsyncResult)

Ukončí operaci asynchronního zápisu. (Zvažte místo toho použití WriteAsync(Byte[], Int32, Int32) .)

(Zděděno od Stream)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Flush()

V současné době není podporováno.

FlushAsync()

Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení.

(Zděděno od Stream)
FlushAsync(CancellationToken)

Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud, způsobí zápis všech dat do vyrovnávací paměti do základního zařízení a monitoruje žádosti o zrušení.

(Zděděno od Stream)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

(Zděděno od MarshalByRefObject)
ObjectInvariant()
Zastaralé.

Poskytuje podporu pro Contract.

(Zděděno od Stream)
Read(Byte[], Int32, Int32)

Přečte posloupnost bajtů z aktuálního OracleBFile datového proudu a posune pozici v rámci streamu o počet přečtených bajtů.

Read(Span<Byte>)

Při přepsání v odvozené třídě přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v rámci datového proudu o počet přečtených bajtů.

(Zděděno od Stream)
ReadAsync(Byte[], Int32, Int32)

Asynchronně přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v rámci datového proudu o počet přečtených bajtů.

(Zděděno od Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronně přečte posloupnost bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení.

(Zděděno od Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Asynchronně přečte posloupnost bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení.

(Zděděno od Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Přečte alespoň minimální počet bajtů z aktuálního datového proudu a posune pozici v rámci streamu o počet přečtených bajtů.

(Zděděno od Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Asynchronně přečte alespoň minimální počet bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení.

(Zděděno od Stream)
ReadByte()

Načte bajt z datového proudu a posune pozici v rámci streamu o jeden bajt, nebo vrátí hodnotu -1, pokud je na konci streamu.

(Zděděno od Stream)
ReadExactly(Byte[], Int32, Int32)

count Přečte počet bajtů z aktuálního datového proudu a posune pozici v rámci streamu.

(Zděděno od Stream)
ReadExactly(Span<Byte>)

Přečte bajty z aktuálního datového proudu a posune pozici v rámci streamu, dokud buffer se nenaplní.

(Zděděno od Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronně přečte count počet bajtů z aktuálního datového proudu, posune pozici v rámci streamu a monitoruje žádosti o zrušení.

(Zděděno od Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Asynchronně čte bajty z aktuálního datového proudu, posune pozici v rámci streamu, dokud buffer se nenaplní, a monitoruje žádosti o zrušení.

(Zděděno od Stream)
Seek(Int64, SeekOrigin)

Nastaví pozici aktuálního datového OracleBFile proudu.

SetFileName(String, String)

Vytvoří vazbu objektu OracleBFile na jiný soubor v operačním systému.

SetLength(Int64)

V současné době není podporováno.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
Write(Byte[], Int32, Int32)

V současné době není podporováno.

Write(ReadOnlySpan<Byte>)

Při přepsání v odvozené třídě zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v rámci tohoto datového proudu o počet zapsaných bajtů.

(Zděděno od Stream)
WriteAsync(Byte[], Int32, Int32)

Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů.

(Zděděno od Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů a monitoruje žádosti o zrušení.

(Zděděno od Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů a monitoruje žádosti o zrušení.

(Zděděno od Stream)
WriteByte(Byte)

Zapíše bajt na aktuální pozici v datovém proudu a posune pozici v rámci streamu o jeden bajt.

(Zděděno od Stream)

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní všechny prostředky používané nástrojem Stream.

(Zděděno od Stream)

Metody rozšíření

CopyToAsync(Stream, PipeWriter, CancellationToken)

Asynchronně přečte bajty z objektu Stream a zapíše je do zadaného PipeWriterobjektu pomocí tokenu zrušení.

Platí pro