OracleLob Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje velký objekt binární datový typ (LOB
) uložený na serveru Oracle. Tato třída se nemůže dědit.
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
- Dědičnost
- Implementuje
Poznámky
Liší OracleLob se od objektu OracleBFile v tom, že data jsou uložená na serveru místo ve fyzickém souboru v operačním systému. Může to být také objekt pro čtení i zápis, na rozdíl od objektu OracleBFile, který je vždy jen pro čtení.
An OracleLob může být jedním z těchto OracleType datových typů.
Datový typ OracleType | Description |
---|---|
Blob |
Datový typ Oracle BLOB , který obsahuje binární data o maximální velikosti 4 gigabajty (GB). To se mapuje na typ ArrayByte. |
Clob |
Datový typ Oracle CLOB , který obsahuje znaková data založená na výchozí znakové sadě na serveru s maximální velikostí 4 GB. To se namapuje na String. |
NClob |
Datový typ Oracle NCLOB , který obsahuje znaková data na základě národní znakové sady na serveru s maximální velikostí 4 GB. To se namapuje na String. |
Vývojář aplikace .NET může načíst hodnoty Oracle LOB
do základních datových typů .NET, například Array typu Byte a String, nebo specializovaného OracleLob datového typu. Třída OracleLob podporuje čtení dat a zápis do Oracle LOB
v databázi Oracle.
Následují hlavní charakteristiky datového typu, které ho OracleLob odlišují od základních datových typů .NET:
Po načtení hodnoty Oracle
LOB
z databáze Oracle do OracleLob třídy můžete změnitLOB
data v otevřené transakci a vaše změny se přímo projeví v databázi. Pokud načtete hodnotu OracleLOB
do Array typu Byte nebo String a aktualizujete tato pole, změny se neprojeví v databázi.Pokud použijete OracleLob třídu pro přístup k části
LOB
hodnoty, předá se z databáze Oracle klientovi pouze tento blok dat. Když použijete metodu GetChars pro přístup k blokuLOB
hodnoty, celý obsah hodnoty se předává z databáze Oracle klientovi.
Chcete-li získat OracleLob objekt, zavolejte metodu GetOracleLob .
Pomocí tohoto formátu můžete vytvořit OracleLob , který má hodnotu NULL:
OracleLob myLob = OracleLob.Null;
Dim myLob As OracleLob = OracleLob.Null
Tato technika se používá především k otestování, jestli má vrácená LOB
ze serveru hodnotu NULL, jak je znázorněno v tomto příkladu:
if (myLob == OracleLob.Null)
If (myLob = OracleLob.Null) Then
Hodnota NULL LOB
se chová podobně jako nulový bajt LOB
v , který Read je úspěšný a vždy vrací nula bajtů.
Při výběru LOB
sloupce, který obsahuje hodnotu null, se vrátí Null.
Musíte zahájit transakci před získáním dočasného LOB
. V opačném OracleDataReader případě se může později podařit získat data.
Dočasný soubor v Oracle můžete otevřít LOB
také voláním DBMS_LOB. Uložená procedura systému CREATETEMPORARY a vytvoření vazby výstupního parametru LOB
. Na straně klienta se dočasný LOB
objekt chová jako tabulkový LOB
objekt . Chcete-li například aktualizovat dočasnou LOB
, musí být uzavřena v transakci.
Následující příklad ukazuje, jak otevřít dočasný LOB
soubor :
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();
Poznámka
Zděděná WriteByte metoda selže, pokud je použita s daty znaků, a InvalidOperationException je vyvolána. Místo toho použijte metodu Write .
Dočasné LOB
s se uzavřou pouze při ukončení připojení, ale při sdružování a při zatížení se dočasné LOB
s neuzavřou. Tento problém lze vyřešit vyřazením dočasného LOB
souboru vyvoláním tempLob.Dispose()
příkazu .
Pole
Null |
Představuje objekt null OracleLob . |
Vlastnosti
CanRead |
Získá hodnotu označující, zda |
CanSeek |
Získá hodnotu označující, zda lze provést operace hledání dopředu a zpět. |
CanTimeout |
Získá hodnotu, která určuje, zda aktuální datový proud může vypršení časového limitu. (Zděděno od Stream) |
CanWrite |
Vždy vrátí hodnotu true bez ohledu na to, jestli podporuje |
ChunkSize |
Získá hodnotu označující minimální počet bajtů k načtení nebo odeslání na server během operace čtení/zápisu. |
Connection |
OracleConnection Získá objekt použitý touto instancí objektu OracleLob. |
IsBatched |
Získá hodnotu označující, zda aplikace volala metodu BeginBatch() . |
IsNull |
Získá hodnotu, která označuje, zda OracleLob je Null datový proud. |
IsTemporary |
Získá hodnotu označující, zda OracleLob je dočasný |
Length |
Získá hodnotu, která vrátí velikost .OracleLob |
LobType |
Získá hodnotu, která vrátí |
Position |
Získá aktuální pozici čtení v datovém OracleLob proudu. |
ReadTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí číst před vypršením časového limitu. (Zděděno od Stream) |
Value |
Získá hodnotu datového proudu common language runtime ekvivalent podkladové hodnoty. |
WriteTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí zapisovat před vypršením časového limitu. (Zděděno od Stream) |
Metody
Append(OracleLob) |
Připojí data ze zadaného |
BeginBatch() |
Zabraňuje aktivaci triggerů na straně serveru při provádění více operací čtení. |
BeginBatch(OracleLobOpenMode) |
Zabraňuje aktivaci triggerů na straně serveru při provádění více operací čtení a zápisu v zadaném režimu přístupu. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Spustí asynchronní operaci čtení. (Zvažte místo toho použití ReadAsync(Byte[], Int32, Int32) .) (Zděděno od Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Spustí asynchronní operaci zápisu. (Zvažte místo toho použití WriteAsync(Byte[], Int32, Int32) .) (Zděděno od Stream) |
Clone() |
Vytvoří nový OracleLob objekt, který odkazuje na stejný Oracle |
Close() |
Zavře aktuální datový proud a uvolní prostředky přidružené k datovému proudu. |
Close() |
Zavře aktuální datový proud a uvolní všechny prostředky (například sokety a popisovače souborů) přidružené k aktuálnímu datovému proudu. Místo volání této metody se ujistěte, že je datový proud správně odstraněn. (Zděděno od Stream) |
CopyTo(Int64, OracleLob, Int64, Int64) |
Zkopíruje se do OracleLob cíle OracleLob se zadaným množstvím dat a zdrojovým posunem. |
CopyTo(OracleLob) |
Zkopíruje se z tohoto OracleLob do cílového umístění OracleLob. |
CopyTo(OracleLob, Int64) |
Zkopíruje se z toho OracleLob do cíle OracleLob se zadaným množstvím dat. |
CopyTo(Stream) |
Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyTo(Stream, Int32) |
Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, CancellationToken) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadaného tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, Int32) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronně přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. Obě pozice datových proudů se posouvají podle počtu zkopírovaných bajtů. (Zděděno od Stream) |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy používaného ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
CreateWaitHandle() |
Zastaralé.
Zastaralé.
Zastaralé.
Přidělí WaitHandle objekt. (Zděděno od Stream) |
Dispose() |
Uvolní prostředky, které tento objekt používá. |
Dispose() |
Uvolní všechny prostředky používané nástrojem Stream. (Zděděno od Stream) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané Stream nástrojem a volitelně uvolní spravované prostředky. (Zděděno od Stream) |
DisposeAsync() |
Asynchronně uvolní nespravované prostředky používané Streamnástrojem . (Zděděno od Stream) |
EndBatch() |
Umožňuje, aby se triggery na straně serveru obnovily po provedení několika operací zápisu. |
EndRead(IAsyncResult) |
Čeká na dokončení čekajícího asynchronního čtení. (Zvažte místo toho použití ReadAsync(Byte[], Int32, Int32) .) (Zděděno od Stream) |
EndWrite(IAsyncResult) |
Ukončí operaci asynchronního zápisu. (Zvažte místo toho použití WriteAsync(Byte[], Int32, Int32) .) (Zděděno od Stream) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Erase() |
Vymaže všechna data z tohoto souboru OracleLob. |
Erase(Int64, Int64) |
Vymaže zadané množství dat z tohoto OracleLob. |
Flush() |
V současné době není podporováno. |
FlushAsync() |
Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení. (Zděděno od Stream) |
FlushAsync(CancellationToken) |
Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud, způsobí zápis všech dat do vyrovnávací paměti do základního zařízení a monitoruje žádosti o zrušení. (Zděděno od Stream) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
ObjectInvariant() |
Zastaralé.
Poskytuje podporu pro Contract. (Zděděno od Stream) |
Read(Byte[], Int32, Int32) |
Přečte posloupnost bajtů z aktuálního OracleLob datového proudu a posune pozici v rámci streamu o počet přečtených bajtů. |
Read(Span<Byte>) |
Při přepsání v odvozené třídě přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v rámci datového proudu o počet přečtených bajtů. (Zděděno od Stream) |
ReadAsync(Byte[], Int32, Int32) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v rámci datového proudu o počet přečtených bajtů. (Zděděno od Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronně přečte posloupnost bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Přečte alespoň minimální počet bajtů z aktuálního datového proudu a posune pozici v rámci streamu o počet přečtených bajtů. (Zděděno od Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Asynchronně přečte alespoň minimální počet bajtů z aktuálního datového proudu, posune pozici v rámci streamu o počet přečtených bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
ReadByte() |
Načte bajt z datového proudu a posune pozici v rámci streamu o jeden bajt, nebo vrátí hodnotu -1, pokud je na konci streamu. (Zděděno od Stream) |
ReadExactly(Byte[], Int32, Int32) |
|
ReadExactly(Span<Byte>) |
Přečte bajty z aktuálního datového proudu a posune pozici v rámci streamu, dokud |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně přečte |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Asynchronně čte bajty z aktuálního datového proudu, posune pozici v rámci streamu, dokud |
Seek(Int64, SeekOrigin) |
Nastaví pozici aktuálního datového OracleLob proudu. |
SetLength(Int64) |
Nastaví délku datového OracleLob proudu na hodnotu menší, než je aktuální délka. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Write(Byte[], Int32, Int32) |
Zapíše posloupnost bajtů do aktuálního OracleLob datového proudu a posune aktuální pozici v tomto streamu o počet zapsaných bajtů. |
Write(ReadOnlySpan<Byte>) |
Při přepsání v odvozené třídě zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v rámci tohoto datového proudu o počet zapsaných bajtů. (Zděděno od Stream) |
WriteAsync(Byte[], Int32, Int32) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů. (Zděděno od Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v rámci tohoto streamu o počet zapsaných bajtů a monitoruje žádosti o zrušení. (Zděděno od Stream) |
WriteByte(Byte) |
Zapíše bajt na aktuální pozici ve streamu OracleLob a posune pozici v rámci streamu o jeden bajt. |
WriteByte(Byte) |
Zapíše bajt na aktuální pozici v datovém proudu a posune pozici v rámci streamu o jeden bajt. (Zděděno od Stream) |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Uvolní všechny prostředky používané nástrojem Stream. (Zděděno od Stream) |
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro