OracleLob 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 duży typ danych binarnych obiektów (LOB
) przechowywany na serwerze Oracle. Klasa ta nie może być dziedziczona.
public ref class OracleLob sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleLob : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleLob = class
inherit Stream
interface ICloneable
interface IDisposable
interface INullable
Public NotInheritable Class OracleLob
Inherits Stream
Implements ICloneable, INullable
- Dziedziczenie
- Implementuje
Uwagi
Element OracleLob różni się od OracleBFile tego, że dane są przechowywane na serwerze zamiast w pliku fizycznym w systemie operacyjnym. Może to być również obiekt odczytu i zapisu, w przeciwieństwie do OracleBFileobiektu , który jest zawsze tylko do odczytu.
Może OracleLob to być jeden z tych OracleType typów danych.
Typ danych OracleType | Opis |
---|---|
Blob |
Typ danych Oracle BLOB zawierający dane binarne o maksymalnym rozmiarze 4 gigabajtów (GB). To mapuje na Array typ Byte. |
Clob |
Typ danych Oracle CLOB zawierający dane znaków na podstawie domyślnego znaku ustawionego na serwerze o maksymalnym rozmiarze 4 GB. Spowoduje to mapowania na String. |
NClob |
Typ danych Oracle NCLOB , który zawiera dane znaków, na podstawie krajowego znaku ustawionego na serwerze o maksymalnym rozmiarze 4 GB. Spowoduje to mapowania na String. |
Deweloper aplikacji .NET może pobrać wartości Oracle LOB
do podstawowych typów danych platformy .NET, takich jak Array typ Byte i String, lub wyspecjalizowany OracleLob typ danych. Klasa OracleLob obsługuje odczytywanie danych z bazy danych Oracle LOB
i zapisywanie ich w bazie danych Oracle.
Poniżej przedstawiono główne cechy OracleLob typu danych, które odróżniają go od podstawowych typów danych platformy .NET:
Po pobraniu wartości Oracle z bazy danych Oracle
LOB
do OracleLob klasy można zmienićLOB
dane w otwartej transakcji, a zmiany zostaną bezpośrednio odzwierciedlone w bazie danych. Jeśli pobierasz wartość OracleLOB
do Array typu Byte lub String zaktualizujesz te tablice, zmiany nie zostaną odzwierciedlone w bazie danych.Gdy używasz OracleLob klasy do uzyskiwania dostępu do fragmentu
LOB
wartości, tylko ten fragment jest przekazywany z bazy danych Oracle do klienta. Gdy używasz GetChars metody w celu uzyskania dostępu do fragmentuLOB
wartości, cała zawartość wartości jest przekazywana z bazy danych Oracle do klienta.
Aby uzyskać obiekt, wywołaj metodę OracleLobGetOracleLob .
Można skonstruować wartość OracleLob NULL przy użyciu tego formatu:
OracleLob myLob = OracleLob.Null;
Dim myLob As OracleLob = OracleLob.Null
Ta technika jest używana głównie do testowania, czy LOB
zwrócony z serwera ma wartość NULL, jak pokazano w tym przykładzie:
if (myLob == OracleLob.Null)
If (myLob = OracleLob.Null) Then
Wartość NULL LOB
zachowuje się podobnie do zera bajtu LOB
, który Read kończy się powodzeniem i zawsze zwraca zero bajtów.
Wybranie kolumny zawierającej LOB
wartość null zwraca wartość Null.
Przed uzyskaniem tymczasowego LOB
elementu należy rozpocząć transakcję.
OracleDataReader W przeciwnym razie dane mogą nie zostać później pozyskane.
Możesz również otworzyć plik tymczasowy LOB
w programie Oracle, wywołując DBMS_LOB. Procedura składowana systemu CREATETEMPORARY i powiązanie parametru wyjściowego LOB
. Po stronie klienta tymczasowy LOB
zachowuje się jak tabela oparta na LOB
tabeli. Na przykład w celu zaktualizowania tymczasowego LOB
elementu należy go ujęć w transakcję.
W poniższym przykładzie pokazano, jak otworzyć tymczasowy LOB
plik :
var connection = new OracleConnection("server=MyServer; integrated security=yes;");
connection.Open();
OracleTransaction transaction = connection.BeginTransaction();
OracleCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";
command.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
var tempLob = (OracleLob)command.Parameters[0].Value;
var tempbuff = new byte[10000];
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(tempbuff,0,tempbuff.Length);
tempLob.EndBatch();
command.Parameters.Clear();
command.CommandText = "MyTable.MyProc";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;
command.ExecuteNonQuery();
transaction.Commit();
connection.Close();
Uwaga
Dziedziczona WriteByte metoda kończy się niepowodzeniem, jeśli jest używana z danymi znaków i InvalidOperationException jest zgłaszana. Write Zamiast tego użyj metody .
Tymczasowe LOB
s są zamykane tylko wtedy, gdy połączenie jest zamknięte, ale z buforowaniem i pod obciążeniem tymczasowe LOB
nie zamykają się. Można to rozwiązać, usuwając tymczasowy LOB
element , wywołując tempLob.Dispose()
polecenie .
Pola
Null |
Reprezentuje obiekt o wartości null OracleLob . |
Właściwości
CanRead |
Pobiera wartość wskazującą, czy |
CanSeek |
Pobiera wartość wskazującą, czy można wykonywać operacje wyszukiwania do przodu i do tyłu. |
CanTimeout |
Pobiera wartość określającą, czy bieżący strumień może upłynął limit czasu. (Odziedziczone po Stream) |
CanWrite |
Zawsze zwraca wartość true, niezależnie od tego, czy |
ChunkSize |
Pobiera wartość wskazującą minimalną liczbę bajtów do pobrania z serwera lub wysłania do serwera podczas operacji odczytu/zapisu. |
Connection |
Pobiera element OracleConnection używany przez to wystąpienie klasy OracleLob. |
IsBatched |
Pobiera wartość wskazującą, czy aplikacja nosi nazwę BeginBatch() metody . |
IsNull |
Pobiera wartość wskazującą, czy OracleLob element jest strumieniem Null . |
IsTemporary |
Pobiera wartość wskazującą, czy OracleLob element jest tymczasowym |
Length |
Pobiera wartość zwracającą rozmiar obiektu OracleLob. |
LobType |
Pobiera wartość zwracającą |
Position |
Pobiera bieżącą pozycję odczytu w strumieniu OracleLob . |
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 wartość strumienia środowiska uruchomieniowego języka wspólnego równoważną wartości bazowej. |
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
Append(OracleLob) |
Dołącza dane z określonego |
BeginBatch() |
Zapobiega uruchamianiu wyzwalaczy po stronie serwera podczas wykonywania wielu operacji odczytu. |
BeginBatch(OracleLobOpenMode) |
Zapobiega uruchamianiu wyzwalaczy po stronie serwera podczas wykonywania wielu operacji odczytu i zapisu w określonym trybie dostępu. |
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 nowy OracleLob obiekt, który odwołuje się do tego samego Oracle |
Close() |
Zamyka bieżący strumień i zwalnia zasoby skojarzone ze strumieniem. |
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 OracleLob do miejsca docelowego OracleLob z określoną ilością danych i przesunięciem źródłowym. |
CopyTo(OracleLob) | |
CopyTo(OracleLob, Int64) |
Kopie z tego OracleLob do miejsca docelowego OracleLob z określoną ilością danych. |
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 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) |
EndBatch() |
Umożliwia wznawianie uruchamiania wyzwalaczy po stronie serwera po wykonaniu wielu operacji zapisu. |
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) |
Erase() |
Usuwa wszystkie dane z tego OracleLobelementu . |
Erase(Int64, Int64) |
Usuwa określoną ilość danych z tego OracleLobelementu . |
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 OracleLob 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 OracleLob strumienia. |
SetLength(Int64) |
Ustawia długość strumienia OracleLob na wartość mniejszą niż bieżąca długość. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Write(Byte[], Int32, Int32) |
Zapisuje sekwencję bajtów do bieżącego OracleLob strumienia i przesuwa bieżącą pozycję w tym strumieniu o liczbę zapisanych bajtów. |
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 OracleLob o jeden bajt. |
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. |