Udostępnij za pośrednictwem


OracleBFile Klasa

Definicja

Reprezentuje obiekt zarządzany OracleBFile zaprojektowany do pracy z typem danych Oracle BFILE . Klasa ta nie może być dziedziczona.

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
Dziedziczenie
Implementuje

Uwagi

Typ danych Oracle to typ danych Oracle BFILELOB , który zawiera odwołanie do danych binarnych o maksymalnym rozmiarze 4 gigabajtów. Oracle BFILE różni się od innych typów danych Oracle LOB , że jego dane są przechowywane w pliku fizycznym w systemie operacyjnym zamiast na serwerze. Należy pamiętać, że BFILE typ danych zapewnia dostęp tylko do odczytu do danych. W związku z tym metody zorientowane na zapis dziedziczone z Stream klasy nie są obsługiwane.

Inne cechy BFILE typu danych, które odróżniają go od LOB typu danych, są następujące:

  • Zawiera dane bez struktury.

  • Obsługuje fragmentowanie po stronie serwera.

  • Używa semantyki kopiowania odwołań. Jeśli na przykład wykonasz operację kopiowania na obiekcie BFILE, kopiowany jest tylko BFILE lokalizator (który jest odwołaniem do pliku). Dane w pliku nie są kopiowane.

Typ BFILE danych powinien być używany do odwoływania LOBsię do obiektów o dużym rozmiarze, a zatem nie praktycznych do przechowywania w bazie danych. Istnieje obciążenie klienta, serwera i komunikacji na potrzeby korzystania z typu danych w porównaniu z typem BFILELOB danych. Dostęp do obiektu BFILE jest bardziej wydajny, jeśli trzeba uzyskać tylko niewielką ilość danych. Uzyskanie całego obiektu jest bardziej wydajne, aby uzyskać dostęp do obiektów rezydentów LOBbazy danych.

Każdy obiekt inny niż NULL OracleBFile jest skojarzony z dwiema jednostkami, które definiują lokalizację bazowego pliku fizycznego:

  • Obiekt Oracle DIRECTORY, który jest aliasem bazy danych dla katalogu w systemie plików i

  • Nazwa pliku źródłowego pliku fizycznego, który znajduje się w katalogu skojarzonym z obiektem DIRECTORY.

Po utworzeniu BFILE obiektu można pobrać jego lokalizator w postaci OracleBFile obiektu przy użyciu ExecuteReader metod lub ExecuteScalar .

Aby uzyskać obiekt, wywołaj metodę OracleBFileGetOracleBFile .

Plik fizyczny skojarzony OracleBFile z obiektem nie musi istnieć, dopóki nie spróbujesz uzyskać do niego dostępu. Aplikacja może powiązać plik z OracleBFile nieistniejącego pliku, utworzyć plik fizyczny w oczekiwanej lokalizacji, a następnie wywołać metodę Read.

Każda próba uzyskania dostępu do zamkniętego OracleBFile przy użyciu Read metod lub Seek automatycznie otwiera OracleBFile strumień.

W poniższym przykładzie języka C# pokazano, jak można utworzyć obiekt BFILE w tabeli Oracle, a następnie pobrać go w postaci OracleBFile obiektu. W przykładzie pokazano użycie OracleDataReader obiektu i OracleBFileSeek metod i 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;
}

Aby uzyskać więcej informacji na temat tworzenia i używania bazy danych Oracle BFILE, zobacz odpowiedni temat w dokumentacji oracle.

Uwaga

BeginWriteMetody , EndWriteiWriteByte, które są dziedziczone z System.IO.Stream klasy, nie są obsługiwane, ponieważ BFILE typ danych jest tylko do odczytu.

Pola

Null

Reprezentuje obiekt o wartości null OracleBFile , który nie jest powiązany z plikiem fizycznym.

Właściwości

CanRead

Pobiera wartość wskazującą, czy BFILE strumień można odczytać.

CanSeek

Pobiera wartość wskazującą, czy można wykonywać operacje wyszukiwania do przodu i wyszukiwania wstecznego.

CanTimeout

Pobiera wartość określającą, czy bieżący strumień może upłynął limit czasu.

(Odziedziczone po Stream)
CanWrite

Pobiera wartość wskazującą, czy obiekt obsługuje zapisywanie.

Connection

Pobiera element OracleConnection używany przez to wystąpienie klasy OracleBFile.

DirectoryName

Pobiera nazwę obiektu DIRECTORY, z którym OracleBFile jest skojarzony obiekt.

FileExists

Pobiera wartość wskazującą, czy plik fizyczny zawierający BFILE dane istnieje w systemie operacyjnym.

FileName

Pobiera nazwę BFILE bez ścieżki.

IsNull

Pobiera wartość wskazującą, czy OracleBFile element jest strumieniem Null .

Length

Pobiera wartość zwracającą długość w bajtach pliku fizycznego, z którym OracleBFile jest skojarzony obiekt.

Position

Pobiera bieżącą pozycję odczytu w strumieniu OracleBFile .

ReadTimeout

Pobiera lub ustawia wartość w milisekundach, która określa, jak długo strumień będzie próbował odczytać przed przekroczeniem limitu czasu.

(Odziedziczone po Stream)
Value

Pobiera typ ArrayByte zawierający OracleBFile dane.

WriteTimeout

Pobiera lub ustawia wartość w milisekundach, która określa, jak długo strumień będzie próbował zapisać przed przekroczeniem limitu czasu.

(Odziedziczone po Stream)

Metody

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

Rozpoczyna asynchroniczną operację odczytu. (Rozważ użycie ReadAsync(Byte[], Int32, Int32) zamiast tego).

(Odziedziczone po Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczną operację zapisu. (Rozważ użycie WriteAsync(Byte[], Int32, Int32) zamiast tego).

(Odziedziczone po Stream)
Clone()

Tworzy kopię tego OracleBFile obiektu skojarzonego z tym samym plikiem fizycznym co oryginalny.

Close()

Zamyka bieżący strumień i zwalnia wszystkie zasoby (takie jak gniazda i dojścia plików) skojarzone z bieżącym strumieniem. Zamiast wywoływać tę metodę, upewnij się, że strumień jest prawidłowo usuwany.

(Odziedziczone po Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Kopie z tego OracleBFile do miejsca docelowego OracleLob z określoną ilością danych, przesunięciem źródła i przesunięciem docelowym.

CopyTo(OracleLob)

Kopiuje całą zawartość tego OracleBFile obiektu na początek miejsca docelowego OracleLob.

CopyTo(OracleLob, Int64)

Kopiuje całą zawartość tego OracleBFile obiektu do miejsca docelowego OracleLob z określonym przesunięciem.

CopyTo(Stream)

Odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CopyTo(Stream, Int32)

Odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CopyToAsync(Stream)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CopyToAsync(Stream, CancellationToken)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CopyToAsync(Stream, Int32)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu przy użyciu określonego rozmiaru buforu i tokenu anulowania. Oba pozycje strumieni są zaawansowane przez liczbę skopiowanych bajtów.

(Odziedziczone po Stream)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
CreateWaitHandle()
Przestarzałe.
Przestarzałe.
Przestarzałe.

WaitHandle Przydziela obiekt.

(Odziedziczone po Stream)
Dispose()

Zwalnia wszystkie zasoby używane przez ten obiekt.

Dispose()

Zwalnia wszelkie zasoby używane przez element Stream.

(Odziedziczone po Stream)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Stream)
DisposeAsync()

Asynchronicznie zwalnia niezarządzane zasoby używane przez program Stream.

(Odziedziczone po Stream)
EndRead(IAsyncResult)

Oczekuje na ukończenie oczekującego odczytu asynchronicznego. (Rozważ użycie ReadAsync(Byte[], Int32, Int32) zamiast tego).

(Odziedziczone po Stream)
EndWrite(IAsyncResult)

Kończy asynchroniczną operację zapisu. (Rozważ użycie WriteAsync(Byte[], Int32, Int32) zamiast tego).

(Odziedziczone po Stream)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Flush()

Obecnie nieobsługiwane.

FlushAsync()

Asynchronicznie czyści wszystkie bufory dla tego strumienia i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

(Odziedziczone po Stream)
FlushAsync(CancellationToken)

Asynchronicznie czyści wszystkie bufory dla tego strumienia, powoduje zapisanie wszystkich buforowanych danych na urządzeniu źródłowym i monitorowanie żądań anulowania.

(Odziedziczone po Stream)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ObjectInvariant()
Przestarzałe.

Zapewnia obsługę programu Contract.

(Odziedziczone po Stream)
Read(Byte[], Int32, Int32)

Odczytuje sekwencję bajtów z bieżącego OracleBFile strumienia i rozwija pozycję w strumieniu przez liczbę odczytanych bajtów.

Read(Span<Byte>)

Po zastąpieniu w klasie pochodnej odczytuje sekwencję bajtów z bieżącego strumienia i przesuwa pozycję w strumieniu przez liczbę odczytanych bajtów.

(Odziedziczone po Stream)
ReadAsync(Byte[], Int32, Int32)

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia i rozwija pozycję w strumieniu przez liczbę odczytanych bajtów.

(Odziedziczone po Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, przesuwa pozycję w strumieniu o liczbę odczytanych bajtów i monitoruje żądania anulowania.

(Odziedziczone po Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, przesuwa pozycję w strumieniu o liczbę odczytanych bajtów i monitoruje żądania anulowania.

(Odziedziczone po Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Odczytuje co najmniej minimalną liczbę bajtów z bieżącego strumienia i rozwija pozycję w strumieniu przez liczbę odczytanych bajtów.

(Odziedziczone po Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Asynchronicznie odczytuje co najmniej minimalną liczbę bajtów z bieżącego strumienia, zwiększa pozycję w strumieniu przez liczbę odczytanych bajtów i monitoruje żądania anulowania.

(Odziedziczone po Stream)
ReadByte()

Odczytuje bajt ze strumienia i przesuwa pozycję w strumieniu o jeden bajt lub zwraca wartość -1, jeśli na końcu strumienia.

(Odziedziczone po Stream)
ReadExactly(Byte[], Int32, Int32)

Odczytuje count liczbę bajtów z bieżącego strumienia i przesuwa pozycję w strumieniu.

(Odziedziczone po Stream)
ReadExactly(Span<Byte>)

Odczytuje bajty z bieżącego strumienia i przesuwa pozycję w strumieniu do buffer momentu wypełnienia.

(Odziedziczone po Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronicznie odczytuje count liczbę bajtów z bieżącego strumienia, zwiększa pozycję w strumieniu i monitoruje żądania anulowania.

(Odziedziczone po Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Asynchronicznie odczytuje bajty z bieżącego strumienia, przesuwa pozycję w strumieniu do buffer momentu wypełnienia i monitoruje żądania anulowania.

(Odziedziczone po Stream)
Seek(Int64, SeekOrigin)

Ustawia położenie bieżącego OracleBFile strumienia.

SetFileName(String, String)

OracleBFile Wiąże obiekt z innym plikiem w systemie operacyjnym.

SetLength(Int64)

Obecnie nieobsługiwane.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
Write(Byte[], Int32, Int32)

Obecnie nieobsługiwane.

Write(ReadOnlySpan<Byte>)

Po zastąpieniu w klasie pochodnej zapisuje sekwencję bajtów do bieżącego strumienia i przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów.

(Odziedziczone po Stream)
WriteAsync(Byte[], Int32, Int32)

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia i przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów.

(Odziedziczone po Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania.

(Odziedziczone po Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów i monitoruje żądania anulowania.

(Odziedziczone po Stream)
WriteByte(Byte)

Zapisuje bajt do bieżącej pozycji w strumieniu i przesuwa pozycję w strumieniu o jeden bajt.

(Odziedziczone po Stream)

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia wszelkie zasoby używane przez element Stream.

(Odziedziczone po Stream)

Metody rozszerzania

CopyToAsync(Stream, PipeWriter, CancellationToken)

Asynchronicznie odczytuje bajty z obiektu Stream i zapisuje je w określonym PipeWriterobiekcie przy użyciu tokenu anulowania.

Dotyczy