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 v tom, že jeho data jsou uložena ve fyzickém souboru v operačním systému místo na serveru. Všimněte si, že BFILE datový typ poskytuje přístup k datům jen pro čtení. Proto nejsou podporovány metody orientované na zápis zděděné z Stream třídy.

Mezi další charakteristiky datového BFILE typu, které ho odlišují od datového LOB typu, patří:

  • Obsahuje nestrukturovaná data.

  • Podporuje bloky 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 se pouze BFILE lokátor (což je odkaz na soubor). Data v souboru se nekopírují.

Datový BFILE typ by se měl použít pro odkazování LOBna hodnoty, které jsou velké, a proto není praktické ukládat do databáze. Pro použití datového typu v porovnání s BFILE datovým typem LOB existují klientské, serverové a komunikační režie. Přístup k datům BFILE je efektivnější, pokud potřebujete získat jenom malé množství dat. Pokud potřebujete získat celý objekt, je efektivnější získat přístup k databázím rezidentům LOB.

Každý objekt bez hodnoty NULL OracleBFile je přidružený ke dvěma entitě, které definují umístění základní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ý se nachází v adresáři přidruženém k objektu DIRECTORY.

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

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 OracleBFile vazbu na neexistující soubor, vytvořit fyzický soubor v očekávaném umístění a poté volat Read.

Jakýkoli pokus o přístup k uzavřenému OracleBFile objektu pomocí Read metod nebo Seek metod znovu otevře OracleBFile datový proud automaticky.

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.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 BFILEnaleznete v příslušném tématu v dokumentaci Oracle.

Note

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

Pole

Name Description
Null

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

Vlastnosti

Name Description
CanRead

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

CanSeek

Získá hodnotu označující, zda lze provádět operace hledání vpřed a zpětného 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 určující, zda objekt podporuje zápis.

Connection

OracleConnection Získá používané touto instancí OracleBFile.

DirectoryName

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

FileExists

Získá hodnotu urč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 to 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í přečíst před uplynutí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í zapsat před uplynutím časového limitu.

(Zděděno od Stream)

Metody

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

Zahájí asynchronní operaci čtení. (Místo toho zvažte použití ReadAsync(Byte[], Int32, Int32) .)

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

Zahájí asynchronní operaci zápisu. (Místo toho zvažte použití WriteAsync(Byte[], Int32, Int32) .)

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

Vytvoří kopii tohoto OracleBFile objektu přidruženého 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ě uvolněn.

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

Zkopíruje z toho OracleBFile do cíle OracleLob se zadaným množstvím dat, posunem zdroje a cílovým posunem.

CopyTo(OracleLob, Int64)

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

CopyTo(OracleLob)

Zkopíruje celý obsah tohoto OracleBFile na začátek cíle OracleLob.

CopyTo(Stream, Int32)

Nač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ů jsou rozšířeny počtem bajtů zkopírovaných.

(Zděděno od Stream)
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ů jsou rozšířeny počtem bajtů zkopírovaných.

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

Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných.

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

Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných.

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

Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných.

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

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

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

WaitHandle Přidělí 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 a volitelně uvolní spravované prostředky.

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

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

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

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

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

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Aktuálně se nepodporuje.

FlushAsync()

Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat uložených do vyrovnávací paměti do podkladové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 uložených do vyrovnávací paměti do podkladového zařízení a monitoruje žádosti o zrušení.

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

Slouží jako výchozí funkce hash.

(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á Type aktuální instance.

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

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

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

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

(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 datovém proudu o počet přečtených bajtů.

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

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

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

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

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

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

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

Nastaví pozici v aktuálním OracleBFile datovém proudu.

SetFileName(String, String)

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

SetLength(Int64)

Aktuálně se nepodporuje.

ToString()

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

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

Aktuálně se nepodporuje.

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

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

(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 tomto datovém proudu o počet zapsaných bajtů.

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

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

(Zděděno od Stream)

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

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

(Zděděno od Stream)

Platí pro