OracleBFile Klasa

Definicja

Reprezentuje zarządzany obiekt OracleBFile 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 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 BFILE to typ danych LOB Oracle, 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. BFILE Oracle różni się od innych typów danych Oracle LOB 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ć, że typ danych BFILE zapewnia dostęp tylko do odczytu do danych.Note that the BFILE data type provides read-only access to data. W związku z tym metody ukierunkowane na zapis Dziedziczony z klasy Stream nie są obsługiwane.Therefore, write-oriented methods inherited from the Stream class are not supported.

Inne cechy typu danych BFILE, które odróżniają go od typu danych LOB są następujące: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 jeśli wykonujesz operację kopiowania na BFILE, kopiowana jest tylko lokalizator BFILE (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 BFILE powinien służyć do odwoływania się do LOB, które mają duże rozmiary, i dlatego nie jest praktyczne do przechowywania w bazie danych.The 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 typu danych BFILE w porównaniu z typem danych LOB.There is client, server, and communication overhead for using a BFILE data type compared to the LOB data type. Dostęp do 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 LOBs jest bardziej wydajny, 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 OracleBFile o wartości 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 BFILE można pobrać jego Lokalizator w postaci obiektu OracleBFile przy użyciu metod ExecuteReader lub ExecuteScalar.After 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 obiektu, wywołaj metodę GetOracleBFile.To obtain an OracleBFile object, call the GetOracleBFile method.

Plik fizyczny, z którym jest skojarzony obiekt OracleBFile, 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ć Read.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 przy użyciu metody Read lub Seek powoduje automatyczne otworzenie automatycznie strumienia OracleBFile.Any attempt to access a closed OracleBFile using the Read or Seek methods reopens an OracleBFile stream automatically.

Poniższy C# przykład ilustruje, jak można utworzyć BFILE w tabeli Oracle, a następnie pobrać go w postaci obiektu OracleBFile.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 użycia obiektu OracleDataReader i Seek OracleBFilei Read metod.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 BFILEOracle, 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

Metody BeginWrite, EndWritei WriteByte, które są dziedziczone z klasy System.IO.Stream, nie są obsługiwane, ponieważ typ danych BFILE jest tylko do odczytu.The 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 pusty obiekt 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ą, czy BFILE można odczytać strumienia.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 OracleConnection używany przez to wystąpienie OracleBFile.Gets the OracleConnection used by this instance of the OracleBFile.

DirectoryName

Pobiera nazwę obiektu katalogu, z którym jest skojarzony obiekt OracleBFile.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 istnieją 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 jest strumieniem Null.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 jest skojarzony obiekt OracleBFile.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 strumieniu OracleBFile.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 Array typu Byte, który zawiera OracleBFile dane.Gets 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).(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).(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Odziedziczone po Stream)
Clone()

Tworzy kopię tego obiektu OracleBFile 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)

Kopie z tego OracleBFile do OracleLob docelowego z określoną ilością danych, przesunięciem źródłowym 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ść tej OracleBFile na początek OracleLobdocelowej.Copies the entire contents of this OracleBFile to the beginning of a destination OracleLob.

CopyTo(OracleLob, Int64)

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

CopyTo(ReadOnlySpanAction<Byte,Object>, Object, Int32) (Odziedziczone po Stream)
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(Func<ReadOnlyMemory<Byte>,Object,CancellationToken,ValueTask>, Object, Int32, CancellationToken) (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()

Przydziela obiekt WaitHandle.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()

Zwalnia wszelkie zasoby używane przez element Stream.Releases all resources used by the Stream.

(Odziedziczone po Stream)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane.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).(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).(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Odziedziczone po Stream)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.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()

Pobiera Type bieżącego wystąpienia.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 Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

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

(Odziedziczone po MarshalByRefObject)
ObjectInvariant()

Zapewnia pomoc techniczną dla Contract.Provides support for a Contract.

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

Odczytuje sekwencję bajtów z bieżącego strumienia OracleBFile i przesuwa pozycję w strumieniu o 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ę na bieżącym strumieniu OracleBFile.Sets the position on the current OracleBFile stream.

SetFileName(String, String)

Wiąże obiekt OracleBFile 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 reprezentujący 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 wszelkie zasoby używane przez element Stream.Releases all resources used by the Stream.

(Odziedziczone po Stream)

Dotyczy