OracleBFile Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 BFILE
LOB
, 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 tylkoBFILE
lokalizator (który jest odwołaniem do pliku). Dane w pliku nie są kopiowane.
Typ BFILE
danych powinien być używany do odwoływania LOB
się 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 BFILE
LOB
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 LOB
bazy 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
BeginWrite
Metody , EndWrite
iWriteByte
, 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 |
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 |
FileName |
Pobiera nazwę |
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 |
ReadExactly(Span<Byte>) |
Odczytuje bajty z bieżącego strumienia i przesuwa pozycję w strumieniu do |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie odczytuje |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Asynchronicznie odczytuje bajty z bieżącego strumienia, przesuwa pozycję w strumieniu do |
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. |