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
) przechowywanych 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 do 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 typ ArrayByte. |
Clob |
Typ danych Oracle CLOB zawierający dane znaków na podstawie domyślnego zestawu znaków na serwerze o maksymalnym rozmiarze 4 GB. To mapuje na String. |
NClob |
Typ danych Oracle NCLOB , który zawiera dane znaków, na podstawie narodowego zestawu znaków na serwerze o maksymalnym rozmiarze 4 GB. To mapuje 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
LOB
z bazy danych Oracle do OracleLob klasy można zmienićLOB
dane w otwartej transakcji, a zmiany zostaną bezpośrednio odzwierciedlone w bazie danych. Jeśli po pobraniu wartości OracleLOB
do Array typu Byte lub String zaktualizowaniu tych tablic 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ć OracleLob obiekt, wywołaj metodę GetOracleLob .
Obiekt o wartości NULL można utworzyć OracleLob w następującym formacie:
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 LOB
kolumny zawierającej wartość null zwraca wartość Null.
Przed uzyskaniem tymczasowego LOB
elementu należy rozpocząć transakcję . OracleDataReader W przeciwnym razie uzyskanie danych może zakończyć się niepowodzeniem później.
Możesz również otworzyć tymczasowy obiekt 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, aby zaktualizować tymczasowy LOB
element , musi być ujęta w transakcji.
W poniższym przykładzie pokazano, jak otworzyć tymczasowy plik LOB
:
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
Metoda dziedziczona WriteByte kończy się niepowodzeniem, jeśli jest używana z danymi znaków, a InvalidOperationException element jest zgłaszany. Write Zamiast tego użyj metody .
Tymczasowe LOB
s są zamykane tylko wtedy, gdy połączenie jest zamknięte, ale w przypadku buforowania i pod obciążeniem tymczasowe LOB
nie zamykają się. Można rozwiązać ten problem, dysponując tymczasowy LOB
element , wywołując metodę tempLob.Dispose()
.
Pola
Null |
Reprezentuje obiekt o wartości null OracleLob . |
Właściwości
CanRead |
Pobiera wartość wskazującą |
CanSeek |
Pobiera wartość wskazującą, czy można wykonać 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 dane OracleConnection używane przez to wystąpienie obiektu OracleLob. |
IsBatched |
Pobiera wartość wskazującą, czy aplikacja nazwała metodę BeginBatch() . |
IsNull |
Pobiera wartość wskazującą, czy OracleLob jest to Null strumień. |
IsTemporary |
Pobiera wartość wskazującą, czy OracleLob element jest tymczasowym |
Length |
Pobiera wartość zwracającą rozmiar OracleLobelementu . |
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 upływem 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ń podejmie próbę zapisania przed upływem 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) |
Uniemożliwia wyzwalanie wyzwalaczy po stronie serwera podczas wykonywania wielu operacji odczytu i zapisu w określonym trybie dostępu. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Rozpoczyna operację odczytu asynchronicznego. (Rozważ użycie ReadAsync(Byte[], Int32, Int32) zamiast tego). (Odziedziczone po Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Rozpoczyna operację zapisu asynchronicznego. (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 uchwyty 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. Obie 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. Obie 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. Obie 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. Obie 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. Obie 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. Obie 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 Streamprogram . (Odziedziczone po Stream) |
EndBatch() |
Umożliwia wyzwalaczom po stronie serwera wznowienie uruchamiania po wykonaniu wielu operacji zapisu. |
EndRead(IAsyncResult) |
Czeka 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 elementu OracleLob. |
Erase(Int64, Int64) |
Usuwa określoną ilość danych z tego OracleLobobiektu . |
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 bieżące wystąpienie. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady 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 według liczby odczytanych bajtów. |
Read(Span<Byte>) |
Po zastąpieniu w klasie pochodnej odczytuje sekwencję bajtów z bieżącego strumienia i rozwija pozycję w strumieniu według liczby odczytanych bajtów. (Odziedziczone po Stream) |
ReadAsync(Byte[], Int32, Int32) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia i rozwija pozycję w strumieniu według liczby odczytanych bajtów. (Odziedziczone po Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, rozwija pozycję w strumieniu według liczby odczytanych bajtów i monitoruje żądania anulowania. (Odziedziczone po Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronicznie odczytuje sekwencję bajtów z bieżącego strumienia, rozwija pozycję w strumieniu według liczby 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 według liczby 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 według liczby odczytanych bajtów i monitoruje żądania anulowania. (Odziedziczone po Stream) |
ReadByte() |
Odczytuje bajt ze strumienia i rozwija pozycję w strumieniu według jednego bajtu 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 rozwija pozycję w strumieniu do momentu |
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 przechodzi bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów. |
Write(ReadOnlySpan<Byte>) |
Gdy zastąpisz klasę pochodną, zapisuje sekwencję bajtów do bieżącego strumienia i rozwija bieżącą pozycję w tym strumieniu według liczby zapisanych bajtów. (Odziedziczone po Stream) |
WriteAsync(Byte[], Int32, Int32) |
Asynchronicznie zapisuje sekwencję bajtów do bieżącego strumienia i rozwija 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 OracleLob i rozwija pozycję w strumieniu według jednego bajtu. |
WriteByte(Byte) |
Zapisuje bajt do bieżącej pozycji w strumieniu i rozwija pozycję w strumieniu według jednego bajtu. (Odziedziczone po Stream) |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Zwalnia wszelkie zasoby używane przez element Stream. (Odziedziczone po Stream) |
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla