OracleLob Klasa

Definicja

Reprezentuje typ danych dużego obiektu binarnego ( LOB ) przechowywanego na serwerze Oracle.Represents a large object binary (LOB) data type stored on an Oracle server. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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

OracleLobRóżni się od OracleBFile , że dane są przechowywane na serwerze, a nie w pliku fizycznym w systemie operacyjnym.An OracleLob differs from an OracleBFile in that the data is stored on the server instead of in a physical file in the operating system. Może być również obiektem do odczytu i zapisu, w przeciwieństwie do elementu OracleBFile , który jest zawsze tylko do odczytu.It can also be a read-write object, unlike an OracleBFile, which is always read-only.

OracleLobMoże być jednym z tych OracleType typów danych.An OracleLob may be one of these OracleType data types.

Typ danych OracleTypeOracleType data type OpisDescription
Blob BLOBTyp danych Oracle zawierający dane binarne o maksymalnym rozmiarze wynoszącym 4 gigabajty (GB).An Oracle BLOB data type that contains binary data with a maximum size of 4 gigabytes (GB). To mapuje do Array typu Byte .This maps to an Array of type Byte.
Clob CLOBTyp danych Oracle, który zawiera dane znakowe, na podstawie domyślnego zestawu znaków na serwerze z maksymalnym rozmiarem wynoszącym 4 GB.An Oracle CLOB data type that contains character data, based on the default character set on the server, with a maximum size of 4 GB. To mapuje na String .This maps to String.
NClob NCLOBTyp danych Oracle, który zawiera dane znakowe, na podstawie Narodowego zestawu znaków na serwerze o maksymalnym rozmiarze wynoszącym 4 GB.An Oracle NCLOB data type that contains character data, based on the national character set on the server with a maximum size of 4 GB. To mapuje na String .This maps to String.

Deweloper aplikacji platformy .NET może pobrać wartości Oracle LOB do podstawowych typów danych .NET, takich jak Array Typ Byte i String lub wyspecjalizowany OracleLob Typ danych.A .NET application developer can retrieve the Oracle LOB values into basic .NET data types, such as Array of type Byte and String, or the specialized OracleLob data type. OracleLobKlasa obsługuje odczytywanie danych z i zapisywanie do programu Oracle LOB w bazie danych Oracle.The OracleLob class supports reading data from and writing to the Oracle LOB in the Oracle database.

Poniżej przedstawiono główne cechy OracleLob typu danych, które odróżniają go od podstawowych typów danych .NET:The following are the main characteristics of an OracleLob data type that distinguish it from basic .NET data types:

  • Po pobraniu wartości Oracle LOB z bazy danych programu Oracle do OracleLob klasy można zmienić LOB dane w otwartej transakcji, a zmiany zostaną odzwierciedlone bezpośrednio do bazy danych.After you retrieve the Oracle LOB value from the Oracle database into the OracleLob class, you can change the LOB data in an open transaction and your changes are directly reflected to the database. Jeśli pobierasz wartość Oracle LOB do Array typu Byte lub String i zaktualizujesz te tablice, zmiany nie zostaną odzwierciedlone w bazie danych.If you retrieve the Oracle LOB value into an Array of type Byte or String and update these arrays, your changes are not reflected to the database.

  • W przypadku korzystania z OracleLob klasy w celu uzyskania dostępu do fragmentu LOB wartości tylko ten fragment jest przesyłany z bazy danych programu Oracle do klienta.When you use the OracleLob class to access a chunk of a LOB value, only that chunk is passed from the Oracle database to the client. W przypadku korzystania z GetChars metody w celu uzyskania dostępu do fragmentu LOB wartości cała zawartość wartości jest przesyłana z bazy danych programu Oracle do klienta.When you use the GetChars method to access a chunk of a LOB value, the entire contents of the value are passed from the Oracle database to the client.

Aby uzyskać OracleLob obiekt, wywołaj GetOracleLob metodę.To obtain an OracleLob object, call the GetOracleLob method.

Można utworzyć obiekt OracleLob , który ma wartość null, przy użyciu tego formatu:You can construct an OracleLob that is NULL using this format:

OracleLob myLob = OracleLob.Null;  
Dim myLob As OracleLob = OracleLob.Null

Ta technika jest używana głównie do testowania, czy LOB zwracana z serwera ma wartość null, co ilustruje poniższy przykład:This technique is used primarily to test whether a LOB returned from the server is NULL, as this example illustrates:

if (myLob == OracleLob.Null)  
If (myLob = OracleLob.Null) Then

Wartość NULL LOB zachowuje się podobnie do zera w tym samym bajcie LOB , Read a zawsze zwraca zero bajtów.A NULL LOB behaves similarly to a zero-byte LOB in that Read succeeds and always returns zero bytes.

Wybór LOB kolumny zawierającej wartość NULL zwraca Null .Selecting a LOB column that contains a null value returns Null.

Należy rozpocząć transakcję przed uzyskaniem tymczasowej LOB .You must begin a transaction before obtaining a temporary LOB. W przeciwnym razie OracleDataReader może nie być możliwe późniejsze uzyskanie danych.Otherwise, the OracleDataReader may fail to obtain data later.

Możesz również otworzyć tymczasową LOB w programie Oracle, wywołując DBMS_LOB. Procedura składowana procedury składowanej systemu i powiązania LOB parametru wyjściowego.You can also open a temporary LOB in Oracle by calling the DBMS_LOB.CREATETEMPORARY system stored procedure and binding a LOB output parameter. Po stronie klienta tymczasowy LOB zachowuje się jak oparty na tabeli LOB .On the client side, a temporary LOB behaves like a table-based LOB. Na przykład, aby zaktualizować tymczasowy LOB , musi być ujęty w transakcji.For example, to update the temporary LOB, it must be enclosed in a transaction.

Poniższy przykład ilustruje sposób otwierania tymczasowego LOB :The following example demonstrates how to open a temporary 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 znakowymi i InvalidOperationException jest zgłaszany.The inherited WriteByte method fails if used with character data, and an InvalidOperationException is thrown. WriteZamiast tego użyj metody.Use the Write method instead.

Tymczasowe LOB s są zamykane tylko wtedy, gdy połączenie jest zamknięte, ale z buforowaniem i ładowaniem tymczasowym LOB nie zamyka się.Temporary LOBs are only closed when the connection is closed, but with pooling and under load, temporary LOBs do not close. Można rozwiązać ten problem, usuwając tymczasowy LOB , przez wywołanie tempLob.Dispose() .This can be resolved by disposing the temporary LOB, by invoking tempLob.Dispose().

Pola

Null

Reprezentuje obiekt o wartości null OracleLob .Represents a null OracleLob object.

Właściwości

CanRead

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

CanSeek

Pobiera wartość wskazującą, czy można wykonywać operacje wyszukiwania do przodu i do tyłu.Gets a value indicating whether forward 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

Zawsze zwraca wartość true, niezależnie od tego, czy LOB obsługuje pisać czy nie.Always returns true, regardless of whether the LOB supports writing or not.

ChunkSize

Pobiera wartość wskazującą minimalną liczbę bajtów do pobrania lub wysłania do serwera podczas operacji odczytu/zapisu.Gets a value indicating the minimum number of bytes to retrieve from or send to the server during a read/write operation.

Connection

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

IsBatched

Pobiera wartość wskazującą, czy aplikacja nazywa BeginBatch() metodę.Gets a value indicating whether an application called the BeginBatch() method.

IsNull

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

IsTemporary

Pobiera wartość wskazującą, czy OracleLob jest to tymczasowa LOB .Gets a value indicating whether the OracleLob is a temporary LOB.

Length

Pobiera wartość, która zwraca rozmiar OracleLob .Gets a value that returns the size of the OracleLob.

LobType

Pobiera wartość, która zwraca LOB Typ danych.Gets a value that returns the LOB data type.

Position

Pobiera bieżącą pozycję odczytu w OracleLob strumieniu.Gets the current read position in the OracleLob 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 równoważną wartość strumienia środowiska uruchomieniowego języka wspólnego z wartości źródłowej.Gets the common language runtime stream value equivalent of the underlying value.

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

Append(OracleLob)

Dołącza dane z określonego LOB do bieżącego LOB .Appends data from the specified LOB to the current LOB.

BeginBatch()

Zapobiega wyzwalaniu wyzwalania po stronie serwera podczas wykonywania wielu operacji odczytu.Prevents server-side triggers from firing while performing multiple read operations.

BeginBatch(OracleLobOpenMode)

Zapobiega wyzwalaniu wyzwalania po stronie serwera podczas wykonywania wielu operacji odczytu i zapisu w określonym trybie dostępu.Prevents server-side triggers from firing while performing multiple read and write operations in the specified access mode.

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 nowy OracleLob obiekt, który odwołuje się do tego samego programu Oracle LOB co oryginalny OracleLob obiekt.Creates a new OracleLob object that references the same Oracle LOB as the original OracleLob object.

Close()

Zamyka bieżący strumień i zwalnia zasoby skojarzone ze strumieniem.Closes the current stream and releases resources that are associated with the stream.

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 z tego OracleLob do lokalizacji docelowej OracleLob o określonej ilości danych i przesunięcia źródła.Copies from this OracleLob to a destination OracleLob with the specified amount of data, and the source offset.

CopyTo(OracleLob)

Kopiuje z tego OracleLob do lokalizacji docelowej OracleLob .Copies from this OracleLob to a destination OracleLob.

CopyTo(OracleLob, Int64)

Kopiuje z tego OracleLob miejsca do lokalizacji docelowej OracleLob o określonej ilości danych.Copies from this OracleLob to a destination OracleLob with the specified amount of data.

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()
Nieaktualne.

Przydziela WaitHandle obiekt.Allocates a WaitHandle object.

(Odziedziczone po Stream)
Dispose()

Zwalnia zasoby używane przez ten obiekt.Releases 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)
EndBatch()

Umożliwia wyzwalaczom po stronie serwera wznowienie uruchamiania po wykonaniu wielu operacji zapisu.Allows server-side triggers to resume firing after performing multiple write operations.

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 dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Erase()

Kasuje wszystkie dane z tego OracleLob .Erases all data from this OracleLob.

Erase(Int64, Int64)

Wymazuje określoną ilość danych z tego elementu OracleLob .Erases the specified amount of data from this OracleLob.

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żą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 elementu Object .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()
Nieaktualne.

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

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

Odczytuje sekwencję bajtów z bieżącego OracleLob strumienia i postępuje zgodnie z pozycją w strumieniu przez liczbę odczytanych bajtów.Reads a sequence of bytes from the current OracleLob 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 OracleLob strumieniu.Sets the position on the current OracleLob stream.

SetLength(Int64)

Ustawia długość OracleLob strumienia do wartości mniejszej niż bieżąca długość.Sets the length of the OracleLob stream to a value less than the current length.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

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

Zapisuje sekwencję bajtów do bieżącego OracleLob strumienia i postępuje bieżącą pozycję w tym strumieniu przez liczbę zapisanych bajtów.Writes a sequence of bytes to the current OracleLob stream, and advances the current position within this stream by the number of bytes written.

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 OracleLob strumieniu i przesuwa pozycję w strumieniu o jeden bajt.Writes a byte to the current position in the OracleLob stream, and advances the position within the stream by one byte.

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