OracleBFile Klasa

Definicja

Reprezentuje zarządzany OracleBFile obiekt przeznaczony do pracy z typem danych Oracle BFILE .Represents a managed OracleBFile object designed to work with the Oracle BFILE data type. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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 INullable
    interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
Dziedziczenie
Implementuje

Uwagi

Typ danych BFILE Oracle to typ danych Oracle LOB , który zawiera odwołanie do danych binarnych o maksymalnym rozmiarze wynoszącym 4 gigabajty.The Oracle BFILE data type is an Oracle LOB data type that contains a reference to binary data with a maximum size of 4 gigabytes. Oracle BFILE różni się od innych typów LOB danych Oracle w tym, że dane są przechowywane w pliku fizycznym w systemie operacyjnym, a nie na serwerze.An Oracle BFILE differs from other Oracle LOB data types in that its data is stored in a physical file in the operating system instead of on the server. Należy pamiętać, BFILE że typ danych zapewnia dostęp tylko do odczytu do danych.Note that the BFILE data type provides read-only access to data. Z tego względu metody ukierunkowane na zapis Dziedziczony Stream z klasy nie są obsługiwane.Therefore, write-oriented methods inherited from the Stream class are not supported.

Inne cechy BFILE typu danych, które odróżniają go LOB od typu danych, to:Other characteristics of a BFILE data type that distinguish it from a LOB data type are that it:

  • Zawiera dane bez struktury.Contains unstructured data.

  • Obsługuje dzielenie fragmentów po stronie serwera.Supports server-side chunking.

  • Używa semantyki kopiowania odwołań.Uses reference copy semantics. Na przykład w przypadku wykonywania operacji kopiowania na BFILE, kopiowany jest BFILE tylko lokalizator (który jest odwołaniem do pliku).For example, if you perform a copy operation on a BFILE, only the BFILE locator (which is a reference to the file) is copied. Dane w pliku nie są kopiowane.The data in the file is not copied.

Typ danych powinien być używany w przypadku odwołujących LOBsię do nich, które mają duże rozmiary i dlatego nie są praktyczne do przechowywania w bazie danych. BFILEThe BFILE data type should be used for referencing LOBs that are large in size, and therefore, not practical to store in the database. Istnieje obciążenie klienta, serwera i komunikacji w celu użycia BFILE typu danych w porównaniu LOB z typem danych.There is client, server, and communication overhead for using a BFILE data type compared to the LOB data type. Dostęp do programu BFILE może być bardziej wydajny, jeśli trzeba uzyskać niewielką ilość danych.It is more efficient to access a BFILE if you only need to obtain a small amount of data. Dostęp do baz danych LOBnależy uzyskać, jeśli trzeba uzyskać cały obiekt.It is more efficient to access database-resident LOBs if you need to obtain the entire object.

Każdy obiekt o wartości OracleBFile innej niż null jest skojarzony z dwiema jednostkami, które definiują lokalizację bazowego pliku fizycznego:Each non-NULL OracleBFile object is associated with two entities that define the location of the underlying physical file:

  • Obiekt katalogu Oracle, który jest aliasem bazy danych dla katalogu w systemie plików iAn Oracle DIRECTORY object, which is a database alias for a directory in the file system, and

  • Nazwa pliku podstawowego pliku, który znajduje się w katalogu skojarzonym z obiektem katalogu.The file name of the underlying physical file, which is located in the directory associated with the DIRECTORY object.

Po utworzeniu można pobrać jego Lokalizator w formie OracleBFile obiektu przy użyciu ExecuteReader metod lub ExecuteScalar. BFILEAfter a BFILE is created, you can retrieve its locator in the form of an OracleBFile object using the ExecuteReader or ExecuteScalar methods.

Aby uzyskać OracleBFile obiekt, GetOracleBFile Wywołaj metodę.To obtain an OracleBFile object, call the GetOracleBFile method.

Plik fizyczny, z którym OracleBFile skojarzony jest obiekt, nie musi istnieć, dopóki nie zostanie podjęta próba uzyskania do niego dostępu.The physical file that an OracleBFile object is associated with does not need to exist until you attempt to access it. Aplikacja może powiązać OracleBFile z nieistniejącym plikiem, utworzyć plik fizyczny w oczekiwanej lokalizacji, a następnie wywołać Readpolecenie.An application can bind an OracleBFile to a nonexistent file, create the physical file in the expected location, and then call Read.

Każda próba uzyskania dostępu do zamkniętego OracleBFile Read przy użyciu Seek metod lub powoduje OracleBFile automatyczne otworzenie strumienia.Any attempt to access a closed OracleBFile using the Read or Seek methods reopens an OracleBFile stream automatically.

W poniższym C# przykładzie pokazano, jak można utworzyć BFILE w tabeli Oracle, a następnie pobrać ją w postaci OracleBFile obiektu.The following C# example demonstrates how you can create a BFILE in an Oracle table, and then retrieve it in the form of an OracleBFile object. W przykładzie pokazano sposób OracleDataReader użycia obiektu OracleBFile Seek i metody i Read .The example demonstrates the use of the OracleDataReader object and the OracleBFileSeek and Read methods.

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 BFILEprogramu Oracle, zapoznaj się z odpowiednim tematem w dokumentacji programu Oracle.For more information about creating and using an Oracle BFILE, see the appropriate topic in your Oracle documentation.

Uwaga

System.IO.Stream BFILE Metody, ,EndWrite iWriteByte , które są dziedziczone z klasy, nie są obsługiwane, ponieważ typ danych jest tylko do odczytu. BeginWriteThe BeginWrite, EndWrite, and WriteByte methods, which are inherited from the System.IO.Stream class, are not supported because the BFILE data type is read-only.

Pola

Null

Reprezentuje obiekt zerowy OracleBFile , który nie jest powiązany z plikiem fizycznym.Represents a null OracleBFile object that is not bound to a physical file.

Właściwości

CanRead

Pobiera wartość wskazującą, BFILE czy strumień może być odczytany.Gets a value indicating whether the BFILE stream can be read.

CanSeek

Pobiera wartość wskazującą, czy można wykonywać operacje wyszukiwania do przodu i wyszukiwania wstecznego.Gets a value indicating whether forward-seek and backward-seek operations can be performed.

CanTimeout

Pobiera wartość określającą, czy bieżący strumień może przekroczyć limit czasu.Gets a value that determines whether the current stream can time out.

(Odziedziczone po Stream)
CanWrite

Pobiera wartość wskazującą, czy obiekt obsługuje pisanie.Gets a value indicating whether the object supports writing.

Connection

Pobiera użycie przez to wystąpienie OracleBFile. OracleConnectionGets the OracleConnection used by this instance of the OracleBFile.

DirectoryName

Pobiera nazwę obiektu katalogu, z którym OracleBFile jest skojarzony obiekt.Gets the name of the DIRECTORY object, with which an OracleBFile object is associated.

FileExists

Pobiera wartość wskazującą, czy plik fizyczny zawierający BFILE dane istnieje w systemie operacyjnym.Gets a value indicating whether a physical file containing BFILE data exists in the operating system.

FileName

Pobiera nazwę BFILE bez ścieżki.Gets the name of the BFILE without the path.

IsNull

Pobiera wartość wskazującą, czy OracleBFile Null jest to strumień.Gets a value that indicates whether the OracleBFile is a Null stream.

Length

Pobiera wartość zwracającą długość w bajtach pliku fizycznego, z którym OracleBFile jest skojarzony obiekt.Gets a value that returns the length in bytes of the physical file with which the OracleBFile object is associated.

Position

Pobiera bieżącą pozycję odczytu w OracleBFile strumieniu.Gets the current read position in the OracleBFile stream.

ReadTimeout

Pobiera lub ustawia wartość (w milisekundach), która określa, jak długo strumień będzie próbować odczytać przed upływem limitu czasu.Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.

(Odziedziczone po Stream)
Value

Pobiera typ Byte , który zawiera OracleBFile dane. ArrayGets an Array of type Byte that contains the OracleBFile data.

WriteTimeout

Pobiera lub ustawia wartość (w milisekundach), która określa, jak długo strumień podejmie próbę zapisu przed upływem limitu czasu.Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.

(Odziedziczone po Stream)

Metody

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

Rozpoczęcie asynchronicznej operacji odczytu.Begins an asynchronous read operation. (Rozważ użycie ReadAsync(Byte[], Int32, Int32) zamiast niego).(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

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

Rozpoczyna asynchroniczne operacje zapisu.Begins an asynchronous write operation. (Rozważ użycie WriteAsync(Byte[], Int32, Int32) zamiast niego).(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Odziedziczone po Stream)
Clone()

Tworzy kopię tego OracleBFile obiektu skojarzoną z tym samym plikiem fizycznym co oryginalny.Creates a copy of this OracleBFile object associated with the same physical file as the original.

Close()

Zamyka bieżący strumień i zwalnia wszystkie zasoby (takie jak gniazda i uchwyty plików) skojarzone z bieżącym strumieniem.Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. Zamiast wywołania tej metody upewnij się, że strumień jest prawidłowo usunięty.Instead of calling this method, ensure that the stream is properly disposed.

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

Kopiuje dane z OracleBFile tego elementu do OracleLob lokalizacji docelowej z określoną ilością danych, przesunięciem źródła i przesunięciem docelowym.Copies from this OracleBFile to a destination OracleLob with the specified amount of data, the source offset, and the destination offset.

CopyTo(OracleLob)

Kopiuje całą zawartość OracleBFile na początku lokalizacji docelowej OracleLob.Copies the entire contents of this OracleBFile to the beginning of a destination OracleLob.

CopyTo(OracleLob, Int64)

Kopiuje całą zawartość OracleBFile do lokalizacji docelowej OracleLob o określonej przesunięciu.Copies the entire contents of this OracleBFile to a destination OracleLob at the specified offset.

CopyTo(Stream)

Odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu.Reads the bytes from the current stream and writes them to another stream.

(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.Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(Odziedziczone po Stream)
CopyToAsync(Stream)

Asynchronicznie odczytuje bajty z bieżącego strumienia i zapisuje je w innym strumieniu.Asynchronously reads the bytes from the current stream and writes them to another stream.

(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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

(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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

(Odziedziczone po Stream)
CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
CreateWaitHandle()

WaitHandle Przydziela obiekt.Allocates a WaitHandle object.

(Odziedziczone po Stream)
Dispose()

Zwalnia wszystkie zasoby, które są używane przez ten obiekt.Releases all the resources that are used by this object.

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez Stream program i opcjonalnie zwalnia zarządzane zasoby.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

(Odziedziczone po Stream)
DisposeAsync()

Asynchronicznie zwalnia niezarządzane zasoby używane przez Stream.Asynchronously releases the unmanaged resources used by the Stream.

(Odziedziczone po Stream)
EndRead(IAsyncResult)

Czeka na zakończenie oczekujących asynchronicznych operacji odczytu.Waits for the pending asynchronous read to complete. (Rozważ użycie ReadAsync(Byte[], Int32, Int32) zamiast niego).(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

(Odziedziczone po Stream)
EndWrite(IAsyncResult)

Zamyka asynchroniczne operacje zapisu.Ends an asynchronous write operation. (Rozważ użycie WriteAsync(Byte[], Int32, Int32) zamiast niego).(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Odziedziczone po Stream)
Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Flush()

Obecnie nie jest obsługiwane.Not currently supported.

FlushAsync()

Asynchronicznie czyści wszystkie bufory dla tego strumienia i powoduje, że wszystkie buforowane dane są zapisywane na podstawowym urządzeniu.Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.

(Odziedziczone po Stream)
FlushAsync(CancellationToken)

Asynchronicznie czyści wszystkie bufory dla tego strumienia, powoduje, że wszystkie buforowane dane są zapisywane na podstawowym urządzeniu i monitoruje żądania anulowania.Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.

(Odziedziczone po Stream)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetLifetimeService()

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
InitializeLifetimeService()

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
ObjectInvariant()

Zapewnia pomoc techniczną Contractdla programu.Provides support for a Contract.

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

Odczytuje sekwencję bajtów z bieżącego OracleBFile strumienia i postępuje zgodnie z pozycją w strumieniu przez liczbę odczytanych bajtów.Reads a sequence of bytes from the current OracleBFile stream and advances the position within the stream by the number of bytes read.

Read(Span<Byte>)

Gdy jest zastępowany w klasie pochodnej, odczytuje sekwencję bajtów z bieżącego strumienia i przesuwa pozycję w strumieniu o liczbę odczytanych bajtów.When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

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

Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia i przesuwa pozycję w strumieniu o liczbę odczytanych bajtów.Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

(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.Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(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.Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(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.Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.

(Odziedziczone po Stream)
Seek(Int64, SeekOrigin)

Ustawia pozycję w bieżącym OracleBFile strumieniu.Sets the position on the current OracleBFile stream.

SetFileName(String, String)

Wiąże OracleBFile obiekt z innym plikiem w systemie operacyjnym.Binds the OracleBFile object to a different file in the operating system.

SetLength(Int64)

Obecnie nie jest obsługiwane.Not currently supported.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

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

Obecnie nie jest obsługiwane.Not currently supported.

Write(ReadOnlySpan<Byte>)

Gdy jest zastępowany w klasie pochodnej, zapisuje sekwencję bajtów do bieżącego strumienia i zwiększa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów.When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

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

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia i przesuwa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

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

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przesuwa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów i monitoruje żądania anulowania.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

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

Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia, przesuwa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów i monitoruje żądania anulowania.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(Odziedziczone po Stream)
WriteByte(Byte)

Zapisuje bajty w bieżącym położeniu w strumieniu i przesuwa pozycję w strumieniu o jeden bajt.Writes a byte to the current position in the stream and advances the position within the stream by one byte.

(Odziedziczone po Stream)

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia wszystkie zasoby używane przez Streamprogram.Releases all resources used by the Stream.

(Odziedziczone po Stream)

Dotyczy